使用变量参考表单控件

时间:2014-04-29 19:38:58

标签: vb.net visual-studio-2010 vb.net-2010

我已经看到了很多线索,但我很遗憾。

对于下面的示例,我有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

1 个答案:

答案 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)