Container met controls dynamisch vermeerderen

Status
Niet open voor verdere reacties.

elwin68

Gebruiker
Lid geworden
11 aug 2008
Berichten
22
Hallo,

In Visual Basic 2008 heb ik een container met daarin meerdere controls. Deze container kan 1 of meerdere keren op een form verschijnen. Dit is tijdens het bouwen van de applicatie niet bekend.
Het is dus nodig om de container 1 of meerdere keren op een form te tonen m.b.v. code. Wanneer het veel containers worden dient een scrollbar te worden getoond. Mijn idee was om hiervoor de control TableLayoutPanel te gebruiken. In de eerste cel staat de container met bijbehorende controls.
Tijdens de opbouw van het form wordt ergens een aantal bepaald en a.d.h.v. dit aantal zal het aantal containers moeten worden getoond.

Hoe kan dit worden verwezenlijkt?

Bij voorbaat dank
 
Het is op helpmij verboden om dubble te posten. Graag een moderator die deze topic sluit
 
Het is mij bekend om dubbele te posten.
De eerst post was in het verkeerde forum (Visual Basic) en dit heb ik ook gewijzigd in de desbetreffende post.
 
maar je hoeft niet nog een keer te posten. Je kan ook een moderator vragen om jou vraag in de goeie categorie te zetten
 
Je maakt een BaseClass voor je Panel waarin je alle componenten programatisch invoert (in mijn geval één textbox in het rode panel). De Sub New() accepteert ook een x,y waarde zodat je met 2 handelingen een nieuw panel kan maken.

Code:
1)      Dim [COLOR="red"][naam van de basistabel][/COLOR] As New BaseTableLayoutPanel([COLOR="blue"]x, y[/COLOR])
2)      Me.Controls.Add([COLOR="Red"][naam van de basistabel][/COLOR])

zoals je ziet is dit niet echt moeilijk : hieronder de complete code.

Code:
Public Class Form1


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim TableLayoutPanel1 As New BaseTableLayoutPanel(0, 0)
        Me.Controls.Add(TableLayoutPanel1)

        Dim TableLayoutPanel2 As New BaseTableLayoutPanel(0, 325)
        Me.Controls.Add(TableLayoutPanel2)

    End Sub

    Public Class BaseTableLayoutPanel
        Inherits TableLayoutPanel

        Public Sub New(ByVal x As Integer, ByVal y As Integer)

            Me.BackColor = Color.Red
            Me.Location = New Point(x, y)

            Dim TextBox1 As New TextBox
            Me.Controls.Add(TextBox1)
            TextBox1.Text = "Mijn Textbox"

        End Sub

    End Class

End Class
 
Thanks for your answers. I solved this by defining a user control with it's properties. :thumb:
After this the user control is used to add to a FlowLayoutPanel.

Everything is easy when you know how to do it. :P
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan