Steuerelemente zur Laufzeit in Groupbox erzeugen?

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Unwesen.

    Steuerelemente zur Laufzeit in Groupbox erzeugen?

    Hallo.
    Ich erstelle zur Laufzeit einige Steuerelemente auf meiner Form, nun wollte ich dies ebenfalls mit einer Groupbox tun und die Steuerelemente darin plazieren. Aber die bleibt immer im Vordergrund. Wie bekomme ich die da rein?

    //Edit
    Hat sich erledigt, musste die Groupbox nach den anderen Elementen erstellen. (Oder was auch immer der Fehler war, er war zumindest weg, als ich an der Reihenfolge rumgeschraubt habe.)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Unwesen“ ()

    Hm.. nen Beispielcode kann ich mal hierlassen...
    Das Beispiel erstellt eine Groupbox und einige Buttons darin zur Laufzeit.
    Mehr Erklärung gibbet net.



    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim Grp As GroupBox
    3. Dim intAnzahl As Integer = 26
    4. Dim Btn(intAnzahl) As Button
    5. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    6. 'GroupBox erstellen
    7. Grp = New GroupBox
    8. Controls.Add(Grp)
    9. Grp.Parent = Me
    10. Grp.Name = "grpGrp1"
    11. Grp.Location = New Point(20, 20)
    12. Grp.Size = New Size(320, 240)
    13. Grp.Text = ""
    14. AddHandler Grp.Click, AddressOf grp_Click
    15. Dim btnXpos As Integer = 30
    16. Dim btnYpos As Integer = 12
    17. For i As Integer = 0 To intAnzahl
    18. Btn(i) = New Button
    19. Controls.Add(Btn(i))
    20. Btn(i).Parent = Grp
    21. Btn(i).Name = "btnButton" & i.ToString
    22. Btn(i).Text = "Button " & i.ToString
    23. Btn(i).Size = New Size(80, 22)
    24. Btn(i).Location = New Point(btnXpos, btnYpos)
    25. btnXpos += 90 : If btnXpos > 250 Then btnXpos = 30 : btnYpos += 25
    26. AddHandler Btn(i).Click, AddressOf Btn_Click
    27. Next
    28. End Sub
    29. Private Sub Grp_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    30. MessageBox.Show("Click von " & DirectCast(sender, GroupBox).Name.ToString)
    31. End Sub
    32. Private Sub Btn_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    33. MessageBox.Show("Click von " & DirectCast(sender, Button).Name.ToString)
    34. End Sub
    35. End Class



    //Kurzes Edit:

    Ich nehme an, die Ursache für den Fehler war, dass ich zwar bei meinem ersten Versuch meinen Buttons die GroupBox als Parent zugewiesen habe, aber der Groupbox nicht mitgeteilt habe, dass Form1 ihr Parent ist.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Unwesen“ ()