使用两个变量编辑20个列表框

时间:2018-05-03 21:42:48

标签: vb.net

所以我有20个列表框(从1到20),我想对它们执行相同的操作,在这个代码中你看到listbox1

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    SelectedProfile3.SelectedIndex = 1
    ListBox1.SelectedIndex = ListBox1.SelectedIndex + 1

    While (ListBox1.SelectedItem.Length < SelectedProfile3.SelectedItem) And SelectedProfile3.SelectedIndex = 1

        ListBox1.Items(ListBox1.SelectedIndex) = ListBox1.SelectedItem + (" ")
    End While
    Button4.PerformClick()
End Sub

listbox2上会发生变化的事情:

  1. SelectedProfile3.SelectedIndex = 2
  2. 使用listbox2代替listbox1
  3. 以及其他列表框

    等等

1 个答案:

答案 0 :(得分:0)

只需设置列表框名称或键入代码块(在执行时单独调用)。

正如我所看到的那样,当你编写时,你正在使用整数和字符串进行循环 (ListBox1.SelectedItem.Length (双数据类型)&lt; SelectedProfile3.SelectedItem (字符串类型)

它可能会在运行时减少正常的功能或错误。 虽然我知道您只能在该列表中输入数字,但它会对您有效。

当您使用 while语句时,无需再次调用PerformClick(),只需将代码放入while循环并从外部删除。

但是我仍然不明白你使用

的原因
 ListBox1.Items(ListBox1.SelectedIndex) = ListBox1.SelectedItem + (" ")

但是要同时编辑20个列表框,你应该这样做:

      Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click    
         while (ListBox1.SelectedItem.Length < SelectedProfile3.SelectedItem) And SelectedProfile3.SelectedIndex = 1
              ListBox1.Items(ListBox1.SelectedIndex) = ListBox1.SelectedItem + (" ")
              SelectedProfile3.SelectedIndex = 1
              ListBox1.SelectedIndex = ListBox1.SelectedIndex + 1
          End While
      End Sub

在比较时,如果没有指定控件名称,则无法使用循环,可以对每个列表框中的项目执行此操作。

在代码中我在while语句中输入 ListBox1.SelectedIndex = ListBox1.SelectedIndex + 1 ,然后无需再次执行点击。

如果你想在一次性使用20个列表框( not list-items,因为你在列表框上写问题),那么你可以使用For循环或For each循环列表 - 应该指定框项目但不同的列表名称,否则要更改列表框之类的所有类似控件使用{对于me.controls中的每个列表框}。 您无需一次又一次地执行此单击。

注意:比较控件而不指定其唯一名称很困难,因为编译器无法理解您比较的内容和内容。