[VB.net] Neuer EventHandler bei neuem Objekt

virus-2k

Grünschnabel
Hi.

Ich lasse mir inzwischen per Knopfdruck ein neues Objekt in meine Form erstellen. Hierbei handelt es sich um ein LinkLabel.

Wie erstelle ich nun einen EventHandler für das neu erstellte Objekt, dass ich den zugewiesenen Link auf öffnen kann?

Code bis jetzt:

Code:
Public countLinks As Integer = 0
Dim hoehe As Integer = 70 + countLinks * 16
Dim newLabel As New LinkLabel()
countLinks += 1
newLabel.Text = "Menüpunkt www.test.de"
newLabel.Links.Add(0, 21, "http://www.test.de")
newLabel.Size = New Size(newLabel.PreferredWidth, newLabel.PreferredHeight)
newLabel.Name = "lblnew" & countLinks
newLabel.Location() = New Drawing.Point(13, hoehe)
Me.Controls.Add(newLabel)

Das klappt an sich einwandfrei. Nur passiert eben noch nichts, wenn man den Link anklickt...
 
Hi!

Dafür musst das LinkLabel.LinkClicked Event behandeln...
C#:
string target = e.Link.LinkData as string;

if ( null != target && target.StartsWith( "http://www" ) )
            System.Diagnostics.Process.Start( target );
 
Hi.
Ja das Event würde ich gern behandeln, wenn ich wüsste wie ich es erstmal erstelle.
Das Label wird ja komplett neu erstellt. Und "newLabel.LinkClicked" gibt es nicht.
 
Das Problem ist das:

Dim handler As LinkLabelLinkClickedEventHandler
AddHandler newLabel.LinkClicked, handler

Public Event LinkClicked As "lblnew" & countLinks & LinkClickedEventHandler

nicht funktioniert. Vorschläge?
 
Code:
Friend WithEvents LinkLabel1 As System.Windows.Forms.LinkLabel
[...]

Private Sub linkLabel1_LinkClicked(ByVal sender As Object, _
                ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
[...]
 
"Friend" ist bei der Deklaration von lokalen Variablen ungültig.

Du hast mich denke ich nicht ganz verstanden.
Ich klicke wenn die Applikation bereits gestartet wurde auf einen Knopf. Damit erstell ich mir in der Applikation selbst ein LinkLabel was vorher noch nicht da war. Ich kann also vorher nicht wissen, wieviele kommen und welchen Links sie zugewiesen werden.
Das weiß ich erst, wenn das Event welches ein neues LinkLabel erstellt, gestartet wird.
 
  1. Mit welcher Frameworkversion arbeitest Du?
  2. Habe ich Dich schon verstanden.
    Es ist völlig egal wie viele LinkLabels erstellt werden. Du kannst ein und die selbe Methode,
    die das Klicken auf einen Link behendelt, mit jedem LinkClicked Event deiner LinkLabels verknüpfen.
    Dann darfst aber innerhalb der Ereignisshebandlung (innerhalb der Methode) nicht direkt auf bestimmte Labels zugreifen.
    Verwende dafür immer die Ereignissparameter.
    ( ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs )
 
okay also ich bin noch kein Profi oder Fortgeschrittener Programmierer. Von daher weiß ich nicht genau, wie ich das Umsetzen soll...

Ich arbeite mit Visual Studio 2005 Express und dem Dot Net Framework 2.0
 
Also der Link von mir ist aus der MSDN2 (.NET 2.0).
Daher sollte es auch das Schlüsselwort Friend geben.
Es entspricht dem protected Schlüsselwort und sagt aus,
dass das Objekt nur innerhalb der aktuellen Assemby öffentlich ist.
Nimm halt ein anders her. Private zB.

Ich würde Dir raten Dir mal alle MSDN Casts und auch die CodeClips für Anfänger anzuschauen,
bevor Du anfängst mit VB.NET Windowsanwendungen zu erstellen.

Schau Dir alle Schlüsselwörter einmal an. Vor allem die Zugriffsmodifikatoren und
gleich danach alle Datentypen. Die beiden Dinge musst auch dem ff beherrschen (!)

Die restlichen Schlüsselwörter wirst mit der Zeit und an praktischen Beispielen erlernen.
 

Neue Beiträge

Zurück