FlowLayoutPanel & UserControl - wie ansprechen

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Marcello.

    FlowLayoutPanel & UserControl - wie ansprechen

    Guten Morgen :)

    ich habe eine frage, bzgl. des UserControls. Ich habe mir wie mir gesagt wurde ein UserControl erstellt, und lass dies in mein flowlayoutpanel einfügen.
    Nun wollte ich mal wissen wie spreche ich das jeweilige Control an?
    Sagen wir mal ich habe 5 UserControls hinzugefügt, wie Spreche ich das Dritte z.b. an und möchte von dem Dritten Control was ein Label beinhaltet den Text des Labels auslesen ? :)


    mfg


    Marcello aka. der mit den vielen Rechtschreibfehlern :))
    Hey :)

    zu 1: Über den Desinger (erstellt) aber auf die Form hinzugefügt werden die erst, wenn die For-Schleife läuft.
    zu 2: Per For-Schleife

    VB.NET-Quellcode

    1. Dim newControl As New UserControl
    2. frm_home.FlowLayoutPanel.Controls.Add(newControl)


    Edit by Manschula: Unnötiges Vollzitat entfernt

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

    Mach dir eine List(Of UserControl) und füge jedes dem FlowLayoutPanel hinzugefügte Control auch dieser List hinzu. Dann kannst du die Controls direkt darüber ansprechen.
    So zum Beispiel:

    VB.NET-Quellcode

    1. Public Class UserControl1
    2. Public Property Game As String
    3. Public Sub New(game As String)
    4. InitializeComponent()
    5. Me.Game = game
    6. End Sub
    7. End Class


    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. Dim uC1 As New UserControl1("BF4")
    4. Dim uC2 As New UserControl1("Portal2")
    5. Dim uC3 As New UserControl1("Evil Genius")
    6. AddHandler uC1.Click, AddressOf Game_Clicked
    7. AddHandler uC2.Click, AddressOf Game_Clicked
    8. AddHandler uC3.Click, AddressOf Game_Clicked
    9. FlowLayoutPanel1.Controls.AddRange({uC1, uC2, uC3})
    10. End Sub
    11. Private Sub Game_Clicked(sender As Object, e As EventArgs)
    12. Dim uC As UserControl1 = DirectCast(sender, UserControl1)
    13. MessageBox.Show(uC.Game.ToString)
    14. End Sub
    15. End Class
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Hey, vielen Dank für die ausführliche Antwort. Nur ich will es Dynamisch machen. Also der zieht Sie die Games aus einer DB.
    Würde dann

    VB.NET-Quellcode

    1. Dim Gameid As Int
    2. Dim newControl As New GameControl(Gameid) gehen?

    Denn es ist dann bei jeden Benutzer andere Games in der Datenbank, sowie Unterschiedliche anzahlen von Games.
    Klar geht das. Das UserControl, auf das geclickt wurde, wird in der "sender"-Variable mitgeführt. So ist es einwandfrei identifiziert. Du kannst natürlich ein eigenes Event definieren, welches angepasste EventArgs mitführt. Ist halt immer sehr vom Fall abhängig.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o