1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Button Clickevent hinzufügen funktioniert nicht

Dieses Thema im Forum ".NET" wurde erstellt von Sp1r1t, 2. August 2017.

  1. Sp1r1t

    Sp1r1t Mitglied

    Hallo,

    ich habe ein Problem mit dem Hinzufügen von Click events zu Buttons.

    Zum Aufbau des Projektes:
    Ich habe mich von dem grafischen Anpassen mit Buttons und Textfeldern distanziert und die jeweiligen Element per Code hinzugefügt. Dadurch ist es einfacher später neue Elemente hinzuzufügen.
    Einen Button füge ich mit folgendem Code ein:

    Code (vb.net):
    1. Dim shortbtnsteam As New Button
    2. shortbtnsteam.Text = "Open Steam Folder"
    3. shortbtnsteam.FlatStyle = FlatStyle.Flat
    4. shortbtnsteam.Width = 240
    5. shortbtnsteam.Height = 30
    6. shortbtnsteam.Location = New Point(4, 17)
    7. gbshortcut.Controls.Add(shortbtnsteam)
    Da ich diesen Button über Code generiere kann ich nicht einfach Doppelklick auf ihn machen um den EventHandler zu generieren. Nun hab ich das Problem:

    Wenn ich das ganze so schreibe:
    Code (vb.net):
    1. Private Sub shortbtnsteam_Click(sender As Object, e As EventArgs) Handles shortbtnsteam.Click
    2.         'Do something
    3. End Sub
    Wird mir allerdings "shortbtnsteam.Click" unterstrichen und in der Fehlerliste steht folgendes:

    "BC30506 | Die Handles-Klausel erfordert eine WithEvents-Variable, die im enthaltenden Typ oder einem seiner Basistypen definiert wird."

    Ich habe das ganze auch schon quer durch Google gejagt hab aber bisher noch nichts brauchbares gefunden.

    würde mich freuen wenn da jemand eine hilfreichen Tipp hat.
    vielen Dank schon mal im voraus.

    Mit freundlichen Grüßen

    Sp1r1t
     
  2. Yaslaw

    Yaslaw n/a Moderator

    Generell solltest du den Event auf den Namen des Button setzen und nicht auf den Variablennamen desselben.
    Oder du deklarierst die Variable mit Events.
    Code (Text):
    1. Dim withEvents shortbtnsteam As Button
    Aber, Handles kenne ich unter VB6, VBA oder VBScript nicht. Kann es sein, dass es sich um VB.NET handelt? Wenn ja, dann werde ich den Thread verschieben, weil das da wahrscheinlich anderst gehandhabt wird.
     
  3. Sp1r1t

    Sp1r1t Mitglied

    Hallo,

    ja in der Tat handelt es sich um VB.NET, es tut mir leid, dann hab ich wohl das Falsche Forum erwischt. Ich bitte um Verschiebung des Threads.
    Ich kann jetzt nicht beurteilen in wie weit deine Antwort jetzt noch hilfreich ist.

    Mit freundlichen Grüßen

    Sp1r1t
     
  4. Spyke

    Spyke Capoeirista Premium-User

  5. Sp1r1t

    Sp1r1t Mitglied

    Hallo,
    ich habe etwas gebraucht bis ich herausgefunden hatte, dass man die einzelnen Buttons vor bzw. außerhalb der Load Function definieren muss.

    Der Code muss so aussehen, dann funktioniert alles einwandfrei

    Code (vb.net):
    1. Public Class Main
    2.  
    3.     Public WithEvents shortbtnsteam As New Button
    4.  
    5.     Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    6.         Me.Text = "Programm Name"
    7.         Me.Icon = My.Resources.logo_roh
    8.         Me.Width = 853
    9.         Me.Height = 480
    10.         Me.FormBorderStyle = FormBorderStyle.Fixed3D
    11.  
    12.         shortbtnsteam.Text = "Button"
    13.         shortbtnsteam.FlatStyle = FlatStyle.Flat
    14.         shortbtnsteam.Width = 240
    15.         shortbtnsteam.Height = 30
    16.         shortbtnsteam.Location = New Point(4, 17)
    17.         gbshortcut.Controls.Add(shortbtnsteam)
    18.     End Sub
    19.  
    20.     Private Sub shortbtnsteam_Click(sender As Object, e As EventArgs) Handles shortbtnsteam.Click
    21.         'do something
    22.     End Sub
    23. End Class

    vielen Dank für die Hilfestellungen.

    Mit freundlichen Grüßen

    Sp1r1t