所以我有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
上会发生变化的事情:
SelectedProfile3.SelectedIndex = 2
listbox2
代替listbox1
以及其他列表框
等等答案 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中的每个列表框}。 您无需一次又一次地执行此单击。
注意:比较控件而不指定其唯一名称很困难,因为编译器无法理解您比较的内容和内容。