Visual Studio legt Button-Click-Handler neu an

  • VB.NET

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

    Visual Studio legt Button-Click-Handler neu an

    Hallo,

    ich wollte heute morgen an meinem Projekt weiterarbeiten und musste feststellen dass manche Buttons nicht mehr abfeuern. Drück ich im Entwurf wie gewohnt doppelt auf einen Button zum erstellen, wird es der Aufruf neu angelegt.

    Private Sub Button21_Click_1(sender As Object, e As EventArgs) Handles Button21.Click
    Private Sub Button21_Click(sender As Object, e As EventArgs) Handles Button21.Click <- gibts aber schon.

    Warum ist das so? Wie kann ich den Fehler beheben ohne dass ich alle 98 Buttons neumachen muss?

    Viele Grüße
    Marco

    Titel angepasst. Code in Code-Tags gesetzt. ~Thunderbolt

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

    Ich hab ja keine Ahnung, warum man 98 Buttons braucht. Würde ich 98 Buttons brauchen, dann würde ich eine einzige Routine für die Abhandlung des entsprechenden Events nutzen.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Public Sub New()
    3. InitializeComponent()
    4. For Each x As Button In Me.Controls.OfType(Of Button)
    5. AddHandler x.Click, AddressOf Button_Click
    6. Next
    7. End Sub
    8. Private Sub Button_Click(sender As Object, e As EventArgs)
    9. Select Case True
    10. Case sender Is Button1
    11. 'do smth.
    12. Case sender Is Button2
    13. 'do smth.
    14. End Select
    15. End Sub
    16. End Class


    Edit: Warum die IDE hier durcheinander kommt, kann ich Dir leider nicht beantworten... Ich würde generell meine "Strategie" überdenken. Ist evtl. ein guter Anlass hierzu.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Ich habe natürlich keine 98 Buttons, sondern nur 27. :) Die Labels sind da auch betroffen. Evtl. sind auch manche Timer betroffen und ich kann jetzt alles auf den Kopf stellen und prüfen. Das ist immer doof und hält auf.

    Vielen Dank für dein kleines Beispiel. Ich werde mich dem annehmen.
    Kannst ja mal Dein generelles Vorhaben schildern und evtl. auch Code posten, dann kann man gemeinsam nach einer passablen Lösung suchen. Bin aber erst in ein paar Stunden wieder zuhause.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Ja das kann ich machen per PM.

    Nochmal zurück zum Thema:

    Wenn ich jetzt an den vorhandenen Private Sub Button21_Click das _1 anhänge und wieder über den Entwurf den Button betätige, dann macht er eine neue Button21_Click auf. ???

    Fehler wurde selbst gefunden. Es haben jeweils die Handles gefehlt. Hab diese manuell wieder hinzugefügt und alles wieder gut. :)

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

    Marcolotti schrieb:

    dann macht er eine neue Button21_Click auf. ???
    Nein.
    Die IDE vergibt Standardnamen, und wenn ein solcher bereits vorhanden ist, wird hochgezählt.
    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!