Welcher Button wurde im ButtonArray geklickt.

  • VB.NET
  • .NET (FX) 4.0

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von mox.

    Welcher Button wurde im ButtonArray geklickt.

    Hi, ich habe ein Problem an dem ich nicht weiter komme. Ich habe ein Button Array und bei jedem Button wird zusätzlich noch der AddHandler hinzugefügt bzw. der Click Event. Jetzt möchte ich aber wissen wenn ich den Button Clicke welcher Button geklickt wurde, also der Name des Buttons. Leider häng ich da fest, momentan bin ich soweit:

    VB.NET-Quellcode

    1. ButtonIndex As Integer = 0
    2. Private BT(100) As Button
    3. Sub CreateNewButton()
    4. BT(ButtonIndex) = New Button
    5. BT(ButtonIndex).Name = "index" & ButtonIndex
    6. BT(ButtonIndex).Text = "Test Button"
    7. AddHandler BT(ButtonIndex).Click, AddressOf ClickEv
    8. ButtonIndex += 1
    9. End Sub
    10. Sub ClickEv()
    11. MsgBox(Welcher Button wurden nun geklickt?)
    12. End Sub
    @Mr. Johny Wenn dreist das ganze nicht unbedingt sinnvoll ist, sehen wir es mal als Übung:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Dim ButtonIndex As Integer = 0
    2. Private BT(100) As Button
    3. Sub CreateNewButton()
    4. Dim btn = New Button
    5. btn.Location = New Point(100, 20 + ButtonIndex * 20)
    6. btn.Name = "index" & ButtonIndex
    7. btn.Size = New Size(75, 23)
    8. btn.Text = "Test Button"
    9. btn.Tag = ButtonIndex
    10. Me.Controls.Add(btn)
    11. AddHandler btn.Click, AddressOf ClickEv
    12. BT(ButtonIndex) = btn
    13. ButtonIndex += 1
    14. End Sub
    15. Sub ClickEv(sender As Object, e As EventArgs)
    16. Dim btn = DirectCast(sender, Button)
    17. MessageBox.Show(btn.Tag.ToString)
    18. End Sub
    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!