Problem beim Hinzufügen einem Handlers

  • VB.NET

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

    Problem beim Hinzufügen einem Handlers

    Heyho,
    ich fasse mich kurz:

    Ich teste gerade ein bisschen herum, ich habe dynamisch eine neue Textbox generiert und will nun den Handler OnGotFocus / OnLostFocus hinzufügen.

    VB.NET-Quellcode

    1. Base = New TextBox
    2. AddHandler Base.GotFocus, AddressOf OnGotFocus


    Das Problem ist folgende Fehlermeldung:
    Fehler 1 Fehler bei der Überladungsauflösung, da keine zugreifbare "OnGotFocus" diese Anzahl von Argumenten akzeptiert.

    Bitte um Hilfe
    Danke im Vorraus.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Wie ist die Sub

    Gather schrieb:

    OnGotFocus
    deklariert?
    So?
    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!
    Wie meinst du das?

    Grundsätzlich mache ich dies so:
    Eben den Handler hinzufügen, AddHandler Base.GotFocus, AddressOf OnGotFocus danach einfach die Sub:

    VB.NET-Quellcode

    1. Private Sub OnGotFocus(ByVal sender As Object, ByVal e As EventArgs)
    2. End Sub
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Gib dieser Funktion besser einen anderen Namen oder deklariere sie entsprechend.
    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!
    Die Sache ist ja die es funktioniert mit:

    VB.NET-Quellcode

    1. AddHandler Base.TextChanged, AddressOf OnBaseTextChanged
    2. Private Sub OnBaseTextChanged(ByVal s As Object, ByVal e As EventArgs)
    3. End Sub
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    @Gather: Leitest Du gerade eine Klasse von einem existierenden Control ab?
    Da kann man die meisten Methoden überschreiben:

    VB.NET-Quellcode

    1. Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
    2. End Sub

    Einfach innerhalb der Klasse Overrides eingeben und schon werden alle überschreibbaren Member aufgelistet.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Das ist mir bewusst. (logischerweise :D)
    Ich habe in meiner Klasse, im Sub New Event eine neue Textbox erstellt. (Namens Base)
    Zu dieser möchte ich nun den Handler OnGetFocus hinzufügen, damit ich das Event verwenden kann.

    Grundsätzlich würde deine Methode funktionieren. Jedoch wenn ich dies verwende überschreibe / benutze ich logischerweise das Event meiner Haupt Klasse, und nicht der im Sub New erstellen Textbox.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!