2014-10-18 35 views
-1

我有一个表格,我有23 Comboboxes。每个组合框写SelectedIndex=-1肯定会工作,但我想知道是否有任何其他方式做到这一点,如下面给出的例子。 ?

为多个组合框设置相同的SelectedIndex值

For Each ctl As Control In (GroupBox1.Controls) 
      If TypeOf ctl Is TextBox Then 
       ctl.Text = "" 
      End If    
Next 



我想这一点,

If TypeOf ctl Is ComboBox Then ctl.selectedIndex=-1 End If

但它没有工作。请帮助我。

+0

以哪种方式不起作用?你把所有的组合框放在同一个容器内吗? (一个组框,一个面板,表格iteself) – Steve 2014-10-18 15:01:20

+0

所有的组合都包含在groupbox中。 – Steve 2014-10-18 15:53:48

回答

1

在您的例子您ctl变量是一个Control而不是Combobox所以它不具备SelectIndex属性 - 尽管你可能会与DirectCast(ctl, Combobox)铸造回来。

For Each ctl As Control In (GroupBox1.Controls) 
    If TypeOf ctl Is Combobox Then 
    DirectCast(ctl, Combobox).SelectedIndex = -1 
    End If    
Next 

或者为您的循环创建一个类型特定控制的循环。无需在此处检查类型。

Dim cbs = GroupBox1.Controls.OfType(Of Combobox)() 
For Each cb In cbs 
cb.SelectedIndex = -1 
Next 
+0

两者都有效。谢谢@OneFineDay。 – Steve 2014-10-18 15:52:09

相关问题