Control erstellen, Methodenname hinzufügen

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von sandiro.

    Control erstellen, Methodenname hinzufügen

    Hallo,

    Wie kann ich einem Control (Button, Panel,...) welches ich während der Laufzeit erstelle (Dim Beispiel As New Button...)
    eine Funktion hinzufügen, also dass z.B. beim Klicken auf den Button eine Messagebox erscheint?

    Gruss sandiro
    versuchmal
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Dim MeinButton As New Button
    4. With MeinButton
    5. ' ab hier könnt ihr sämtliche Eigenschaften des Steuerelements (In dem Fall Button) ändern. Zb.
    6. .Text = "Klick Mich Mal" ' Text
    7. .BringToFront() ' Im Vordegrund starten
    8. .ForeColor = Color.Black 'TextFarbe
    9. .Width = 150 ' Breite
    10. .Height = 40 ' Höhe
    11. .Left = 100 ' Abstand vom linken Rand
    12. .Top = 100 ' Abstand vom oberen Rand
    13. ' Man kann noch viel mehr Eigenschaften ändern Einfach mal ausprobiren
    14. AddHandler .Click, AddressOf ButtonKlick ' Mit AddHandler weist ihr das Event einem Handler zu
    15. ' um später darauf zugreifen zu können ( Hier zb. ClickEvent )
    16. Me.Controls.Add(MeinButton) ' Me Controlls.Add bringt den Butten auf Eure Form
    17. End With
    18. End Sub
    19. ' Hier kommt das rein was beim ButtoklickEvent passieren soll, in dem Fall MsgBox
    20. Private Sub ButtonKlick()
    21. MsgBox("Klick")
    22. End Sub
    23. End Class
    Hallo,

    Erstmal danke für die Antworten,
    ich schau mir das mal an...

    Gruss sandiro

    #Edit;

    @ChaosBernd;
    Funktioniert perfekt :)

    Um "später" auf eine Eigenschaft der Buttons zugreifen zu können (grösse ändern,...) muss dem neuen Control noch einen Namen hinzugefügt werden, um das Control dann darüber anzusprechen

    Gruss sandiro

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

    Hallo,

    Also ich meine wenn ich z.B. bei ButtonKlick() die Schriftfarbe des Buttons ändern möchte,
    kann ich nicht schreiben

    Me.MeinButton.ForeColor

    da 'MeinButton' noch nicht existiert.
    Aber mit:

    Me.Controls("MeinButton").Visible = False

    funktioniert es ebenfalls nicht, sondern ich muss beim hinzufügen des Buttons noch schreiben:
    .Name = "MeinButton"

    und dann kann ich den Button ansprechen.
    Wozu willst du den Button vom Programm aus ansprechen? Besser ist es, im Event, dass du ja mit addhandler hinzufügst, den sender abzufragen. Dazu mußt du beim hinzufügen des Event die entsprechenden Parameter mitgeben.
    Dazu solltest du in aller Ruhe das hier durchgehen.
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    @Vatter;

    Also du meinst dass ich bei beim hinzufügen des Events .Click den Namen des Button mitgebe
    und bei der Funktion ButtonClick() einfach den Button anspreche, der mitgeliefert wird?

    Ok, dann schau ich mir das morgen (oder so) mal an

    Gruss sandiro