UserControl EventHandler

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    UserControl EventHandler

    Hallo,
    Bei einem UserControl geht das folgende nicht:

    VB.NET-Quellcode

    1. Private Sub UCButton1_Click(sender As Object, e As EventArgs) Handles UC.Button1.Click
    2. End Sub


    Muss man wirklich auf:

    VB.NET-Quellcode

    1. ​AddHandler UC.Button1.Click, AddressOf UCButton1_Click
    zurückgreifen oder geht es auch komfortabler.

    kingsunil2000 schrieb:



    VB.NET-Quellcode

    1. Public Event UCButton1_Clicked(ByVal sender As Object, ByVal e As EventArgs)
    2. Private Sub UCButton1_Click(sender As Object, e As EventArgs) Handles UC.Button1.Click
    3. RaiseEvent UCButton1_Clicked(sender,e)
    4. End Sub


    Wenn Du dann dieses Control im Designer in Dein Formular reinziehst, dann kannst Du wie bei den anderen Steuerelementen den Event abgreifen.
    Aktuelles Projekt: Z80 Disassembler für Schneider/Amstrad CPC :love:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „oobdoo“ ()

    Du kannst über den Event auch weitere Parameter einbauen und verwenden.

    VB.NET-Quellcode

    1. Public Event UCButton1_Clicked(ByVal sender As Object, ByVal e As EventArgs, MeinString As String)
    2. Private Sub UCButton1_Click(sender As Object, e As EventArgs) Handles UC.Button1.Click
    3. Dim ms As String = "Hallo"
    4. RaiseEvent UCButton1_Clicked(sender,e,ms)
    5. End Sub
    Aktuelles Projekt: Z80 Disassembler für Schneider/Amstrad CPC :love:
    kann man machen, aber verstößt gegen eine man kann glaub sagen "universale" CodeKonvention:
    Events haben 1 Sender und 1 EventArgs und nichts weiter.
    Willst du zusätzliche Information transportieren, beerbe EventArgs und statte es mit dem nötigen aus.

    Wenn wolle siehe Alles über Events

    Im Übrigen ist die Addhandler-Vorgehensweise aus Post#1 immer noch diejenige mit dem geringsten Codierungs-Aufwand.
    Weiss ich auch nicht wirklich.
    Es ist eben eine global eingehaltene Konvention, ähnlich wie dass man Public Klassenmember gross schreibt und dergleichen.
    Du wirst im ganzen Framework kein Event finden, was davon abweicht, und auch alles was über nuget einbindebar ist, und und....
    Dafür gibts auch einen generischen Eventhandler, also anders als bei dir würde man bei eigenen EventArgs das Event so deklarieren:

    VB.NET-Quellcode

    1. Public Event UCButton1_Clicked As EventHandler(Of MyEventArgs)


    (Aber das steht auch alles im angegebenen Tut)

    (Übrigens gibts doch 1 (leidlich begründete) Ausnahme, aber ich sag nicht, welche :P )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()