[Visual Basic] Creare checkbox dinamicamente in TabControl

migo80

Utente Attivo
25 Apr 2013
224
3
18
Buona sera a tutti ho bisogno di un aiuto, vorrei sapere se sia possibile e come far caricare delle checkbox in modo dinamico all'interno di una tab "ad esempio il tab6" di un tabcontrol.
Con il codice che sto provando ora riesco a caricare le checkbox all'interno di una form prelevando i dati da un database e generando un tot di checkbox quanti sono i campi della tabella di mio interesse ma come posso fare per inserirle nel tabcontrol?
Codice:
Imports System.Data.OleDb
Public Class frmTest
    Dim connStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\piani_alimentari.accdb"
    Dim Conn As OleDbConnection
    Dim Adapter As OleDbDataAdapter
    Dim table As New DataTable
    Dim SQLString As String
    Dim arrCH() As CheckBox, nrec As Integer

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        SQLString = "SELECT * FROM ckb_piani_al"
        Dim posx As Integer, posy As Integer
        Conn = New OleDbConnection(connStr)
        Adapter = New OleDbDataAdapter(SQLString, Conn)
        Conn.Open()
        
        table = New DataTable()
        Adapter.Fill(table)
        nrec = table.Rows.Count
        ReDim arrCH(nrec - 1)
        For I As Integer = 0 To nrec - 1
            arrCH(I) = New CheckBox
            posx = 50
            posy = 30 + 30 * I
            arrCH(I).Location = New Point(posx, posy)
            arrCH(I).Size = New Size(100, 35)
            arrCH(I).Text = table.Rows(I)("pianiAlimentari").ToString
            Me.Controls.Add(arrCH(I))
        Next
If Conn.State = ConnectionState.Open Then
           Conn.Close()
        End If
    End Sub
 

migo80

Utente Attivo
25 Apr 2013
224
3
18
Ho risolto modificando solo la parte dell add posto il codice:
Codice:
Imports System.Data.OleDb
Public Class frmTest
    Dim connStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\piani_alimentari.accdb"
    Dim Conn As OleDbConnection
    Dim Adapter As OleDbDataAdapter
    Dim table As New DataTable
    Dim SQLString As String
    Dim arrCH() As CheckBox, nrec As Integer

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        SQLString = "SELECT * FROM ckb_piani_al"
        Dim posx As Integer, posy As Integer
        Conn = New OleDbConnection(connStr)
        Adapter = New OleDbDataAdapter(SQLString, Conn)
        Conn.Open()
        
        table = New DataTable()
        Adapter.Fill(table)
        nrec = table.Rows.Count
        ReDim arrCH(nrec - 1)
        For I As Integer = 0 To nrec - 1
            arrCH(I) = New CheckBox
            posx = 50
            posy = 30 + 30 * I
            arrCH(I).Location = New Point(posx, posy)
            arrCH(I).Size = New Size(100, 35)
            arrCH(I).Text = table.Rows(I)("pianiAlimentari").ToString
           TabPage1.Controls.Add(arrCH(I)) 'TabPage1 è il nome della tab all'interno del tabcontrol
        Next
If Conn.State = ConnectionState.Open Then
           Conn.Close()
        End If
    End Sub