Event schreiben

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Event schreiben

    Ich würde gerne ein Event schreiben, welches ausgelöst wird, wenn sich die Variable "Checked" (as Boolean) verändert.
    Ich habe mir dazu bereits das angeguckt, aber verstehe nicht, wie ich meine
    Variable an "Handle...." übergebe. Weiß jemand vielleicht wie das geht?
    Die Variable "Checked" erzeuge ich so:

    VB.NET-Quellcode

    1. Public Property Checked As Boolean
    Sieh Dir mal das an:

    VB.NET-Quellcode

    1. Public Class MyBoolean
    2. Public Event ChangeBooleanValue(sender As Object, e As EventArgs)
    3. Private _myValue As Boolean
    4. Public Property BooleanValue() As Boolean
    5. Get
    6. Return _myValue
    7. End Get
    8. Set(value As Boolean)
    9. If _myValue <> value Then
    10. RaiseEvent ChangeBooleanValue(Me, EventArgs.Empty)
    11. End If
    12. _myValue = value
    13. End Set
    14. End Property
    15. 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!
    Dafür brauchst du die ausführlichere Variante von Properties:

    VB.NET-Quellcode

    1. Public Event Changed(byval sender as object, byval e as eventargs)
    2. Dim m_Eigenschaft As Integer ' Modulweit gültige Variable
    3. Public Property Eigenschaft() As Integer
    4. ' Abholen des Eigenschaftenwerts
    5. Get
    6. Return m_Eigenschaft
    7. End Get
    8. ' Setzen des Eigenschaftenwerts
    9. Set(ByVal Value As Integer)
    10. if Value <> m_Eigenschaft then Raisevent Changed(me,new EventArgs)
    11. m_Eigenschaft = Value
    12. End Set
    13. End Property


    statt der normalen EventArgs kannst du natürlich auch eigene entwerfen, einfach eine Klasse von EventArgs erben lassen und da reinschreiben, was du brauchst.
    Der Sender ist halt die Instanz des Senders, das EventArgs aus Kompatibilität, weil alle Events so kommen.
    Da kannste auch eine von EventArgs abgeleitete Klass nekmen und noch drölfzig Werte reintun.
    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!