2017-01-30 31 views
-1

私はコンボボックスとテキストボックスのセットを追加できるパネルを持っています。私はデータベースから動的に追加されたコンボボックスにアイテムを追加したいと思います。どのように動的に追加されたコンボボックスに項目を追加するには?Comboboxアイテムを動的に追加されたコントロールに追加する

これはボタンクリックからコンボボックスを動的に追加するためのコードです。

Dim number As Integer = 2 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Dim itemCombobox As New ComboBox 
    itemCombobox.Name = "itemCombobox" + number.ToString 
    itemCombobox.Location = New Point(25, number * 29) 
    itemCombobox.Size = New Point(113, 23) 
    itemCombobox.DropDownStyle = ComboBoxStyle.DropDownList 

    Dim qtyTxtbox As New MaskedTextBox 
    qtyTxtbox.Name = "qtyTxtbox" + number.ToString 
    qtyTxtbox.Location = New Point(172, number * 29) 
    qtyTxtbox.Size = New Point(37, 20) 

    Dim specsBtn As New ComboBox 
    specsBtn.Name = "specsBtn" + number.ToString 
    specsBtn.Location = New Point(236, number * 29) 
    specsBtn.Size = New Point(113, 23) 
    specsBtn.DropDownStyle = ComboBoxStyle.DropDownList 

    Dim bmCombobox As New ComboBox 
    bmCombobox.Name = "bmCombobox" + number.ToString 
    bmCombobox.Location = New Point(385, number * 29) 
    bmCombobox.Size = New Point(113, 23) 
    bmCombobox.DropDownStyle = ComboBoxStyle.DropDownList 

    Panel8.Controls.Add(itemCombobox) 
    Panel8.Controls.Add(qtyTxtbox) 
    Panel8.Controls.Add(specsBtn) 
    Panel8.Controls.Add(bmCombobox) 
    number = number + 1 

End Sub 

これは私が各動的に追加したコントロールの値を取得するにはどうすればよい

Private Sub load_item1() 
    Dim conn As New MySqlConnection 
    conn.ConnectionString = "server=127.0.0.1; username=root; [email protected]; database= atos_db" 
    Dim reader As MySqlDataReader 
    Try 
     conn.Open() 
     Dim query As String 
     query = "select * from atos_db.item_tbl" 
     comm = New MySqlCommand(query, conn) 
     reader = comm.ExecuteReader 
     While reader.Read 
      Dim sItem = reader.GetString("item") 
      itemCombobox1.Items.Add(sItem) 
     End While 
     conn.Close() 
    Catch ex As MySqlException 
     MessageBox.Show(ex.Message) 
    Finally 
     conn.Dispose() 
    End Try 
End Sub 

itemcomboboxに項目を追加する私の機能ですか?

答えて

0

変数 "itemCombobox"はメソッド "Button1_Click"の中で宣言されているので、メソッド "load_item1"では使用できません。

 Dim itemCombobox As New ComboBox 
    Dim number As Integer = 2 
     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     itemCombobox.Name = "itemCombobox" + number.ToString 
     itemCombobox.Location = New Point(25, number * 29) 
     itemCombobox.Size = New Point(113, 23) 
     itemCombobox.DropDownStyle = ComboBoxStyle.DropDownList 

     Dim qtyTxtbox As New MaskedTextBox 
     qtyTxtbox.Name = "qtyTxtbox" + number.ToString 
     qtyTxtbox.Location = New Point(172, number * 29) 
     qtyTxtbox.Size = New Point(37, 20) 

     Dim specsBtn As New ComboBox 
     specsBtn.Name = "specsBtn" + number.ToString 
     specsBtn.Location = New Point(236, number * 29) 
     specsBtn.Size = New Point(113, 23) 
     specsBtn.DropDownStyle = ComboBoxStyle.DropDownList 

     Dim bmCombobox As New ComboBox 
     bmCombobox.Name = "bmCombobox" + number.ToString 
     bmCombobox.Location = New Point(385, number * 29) 
     bmCombobox.Size = New Point(113, 23) 
     bmCombobox.DropDownStyle = ComboBoxStyle.DropDownList 

     Panel8.Controls.Add(itemCombobox) 
     Panel8.Controls.Add(qtyTxtbox) 
     Panel8.Controls.Add(specsBtn) 
     Panel8.Controls.Add(bmCombobox) 
     number = number + 1 

     Dim theButton As Button 
     theButton = New Button 
     theButton.Location = location 
     theButton.Text = label 
     AddHandler theButton.Click, AddressOf Me.btn_clicked 

    End Sub 

とMethodeのload_item1()でこの変数を使用します: はあなたのようなあなたクラッセでグローバルとしてあなたの変数を宣言する必要があります。これを行うために

Private Sub load_item1() 
    Dim conn As New MySqlConnection 
    conn.ConnectionString = "server=127.0.0.1; username=root; [email protected]; database= atos_db" 
    Dim reader As MySqlDataReader 
    Try 
     conn.Open() 
     Dim query As String 
     query = "select * from atos_db.item_tbl" 
     comm = New MySqlCommand(query, conn) 
     reader = comm.ExecuteReader 
     While reader.Read 
      Dim sItem = reader.GetString("item") 
      itemCombobox.Items.Add(sItem) 
     End While 
     conn.Close() 
    Catch ex As MySqlException 
     MessageBox.Show(ex.Message) 
    Finally 
     conn.Dispose() 
    End Try 
End Sub 

Private Sub btn_clicked(ByVal sender As System.Object, ByVal e As System.EventArgs) 
    Dim selectedBtn As Button = sender 
    MsgBox("you have clicked button " & selectedBtn.Name) 
End Sub 
+0

私の問題は、私のような何かをしたいです。この itemCombobox + number.toString.items.add(sItem) 追加されたコントロールにリストを追加することもできます。 –

+0

私の答えに記述されているようにコードを変更した場合は、動的に追加されたコンボボックスにaddItemを追加することができます –

+0

申し訳ありませんが、私はまだ学生です。 コードの出力は次のようなもの... itemCombobox2、itemCombobox3、itemCombobox3 .... bmCombobox2、bmCombobox2、bmCombobox3 .... など –

関連する問題