我已经看到了很多线索,但我很遗憾。
对于下面的示例,我有3个ComboBox(cbx_example0,cbx_example1,cbx_example2)分别位于三个TabPages(索引0,1,2)上。我想根据所选TabPage上的ComboBox设置变量myVariable的值。 但是,我似乎无法弄清楚如何使用变量引用ComboBox。看起来它应该是直截了当的,但我猜不是。无论我做什么,我都会得到一个NullReferenceException。
获取TabPage索引号的函数(本例中返回0)
Function getTabIndex()
Dim currentTabIndex As Int32 = frm_Main.TabControl1.SelectedIndex
Return currentTabIndex
End Function
尝试使用变量
引用ComboBox Dim myVariable As String
Dim i As Integer = getTabIndex
myVariable = frm_Main.Controls("cbx_example" & i).Text
尝试2引用带变量
的ComboBox Dim cbx_example0 As New ComboBox
Dim i As Integer = getTabIndex()
Dim name As String = "cbx_example" & i.ToString
cbx_example = frm_Main.Controls.Item(name)
myVariable = cbx_example.Text
答案 0 :(得分:2)
您的问题是您认为您的cbo位于表单上,而实际上它位于tabpage
上。而不是
cbx_example = frm_Main.Controls.Item(name)
使用(例如)
cbx_example = frm_Main.TabPage1.Controls.Item(name)
请注意,您的组合可能不在tab
本身,而在于tabpage
另一方面,我认为不需要getTabIndex()
。另一种在表单层次结构中获得控制权的方法是使用
form.Controls.Find(key, searchAllChildren)