Eine Ereigniss-Prozedur für mehrere Labels auf einen TablePanel abfangen

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Trantüte.

    Eine Ereigniss-Prozedur für mehrere Labels auf einen TablePanel abfangen

    Hallo Ihr Profis! :)

    Ich habe folgendes Problem:

    1. Zur Laufzeit füge ich einem TablePanel mehrere Labels hinzu.
    2. Ich weiß vorher nicht wieviele Labels es am Ende sein werden.
    3. Jetzt will ich mit dem Mousedown-Event auf die einzelnen Labels zugreifen können.
    4. Für jedes Label eine eigene Prozedur ist nicht möglich da sie zur Laufzeit ja erst entstehen.

    Da muss es doch eine Möglichkeit geben. Schließlich will ja so ein Event auch den Sender als Argument haben. :o)

    Wie mach ich das? (Meine Internetrecherche hat kein Ergebniss gebracht)

    mfg
    david
    Das müsste etwa so aussehen:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private nb As Integer = 0
    3. Private Sub Label1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseDown
    4. Dim lb As Label = DirectCast(sender, Label)
    5. Label1.Text = lb.Name
    6. End Sub
    7. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    8. Dim _Label As New Label
    9. nb += 1
    10. Label2.Text = nb.ToString
    11. _Label.AutoSize = True
    12. _Label.Location = New System.Drawing.Point(13, 13 + 20 * nb)
    13. _Label.Name = "Label_" & nb.ToString
    14. _Label.Size = New System.Drawing.Size(39, 13)
    15. _Label.Text = "Label_" & nb.ToString
    16. _Label.BorderStyle = BorderStyle.Fixed3D
    17. AddHandler _Label.MouseDown, AddressOf Label1_MouseDown
    18. _Label.Visible = True
    19. Me.Controls.Add(_Label)
    20. End Sub
    21. End Class
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!