如何使用列表框动态地为按钮命名

时间:2012-06-22 05:32:07

标签: visual-studio-2010

Dim cont = 0
    If ListBox1.Items.Count > 0 Then

        For i =1 To ListBox1.Items.Count
            Dim botao3 As New Button

            botao3.Text = CStr(ListBox2.Items(cont)) 'table.Item(i).text & 
            botao3.BringToFront()
            botao3.Top = top
            botao3.Left = 40
            botao3.Width = 300

            Me.Controls.Add(botao3)

            top = top + 30

            cont = cont + 1
        Next

    End If

PS。我的列表框将已排序的propriety设置为true

这是我的代码,但它只会给它列表框中最后插入的值的名称。

我怎样才能做到这一点,以便当我点击按钮时,它会删除旧的按钮组,并添加一组我刚刚插入的新按钮。

请帮我一把:$

3 个答案:

答案 0 :(得分:0)

您放置0而不是当前循环值

botao3.Text = CStr(ListBox2.Items(0))

应该是

botao3.Text = CStr(ListBox2.Items(i))

对于另一部分,我不确定你想要实现什么,但你可以在循环之前拥有Me.Controls.Clear()

答案 1 :(得分:0)

使用它:

  Dim btn As Button() = New Button(ListBox1.Items.Count - 1) {}
        For i As Integer = 0 To ListBox1.Items.Count - 1
            btn(i) = New Button()
            btn(i).Text = ListBox1.Items(i).ToString()
            If i > 0 Then
                btn(i).Left = btn(i - 1).Right
            End If

            Me.Controls.Add(btn(i))
        Next

结果: enter image description here

答案 2 :(得分:0)

试试:

If ListBox1.Items.Count > 0 Then

    For i =0 To ListBox1.Items.Count
        Dim botao3 As New Button

        botao3.Text = CStr(ListBox1.Items(i)) 'table.Item(i).text & 
        botao3.BringToFront()
        botao3.Top = top
        botao3.Left = 40
        botao3.Width = 300

        Me.Controls.Add(botao3)

        top = top + 30
    Next

End If