【发布时间】:2013-12-07 00:40:25
【问题描述】:
尝试使用 vb.net 2010 中的模块中的通用例程填充组合框。我将变量 formname.comboboxname 传递给子并将其拆分为 2,运行查询,这是我不能去的地方更远。我需要这样做,因为我有很多表格和组合框要填写,我认为一个模块中的通用方法会很棒。
我可能会分解并为每个组合框做一个数据集,但这当然应该有效,并且是我的首选。
在表单代码中,我用 --- loadComboBoxOrHelp("FrmArchive.cmbSrcType") 调用它,这是在我的模块中,一些代码被注释只是为了显示我到目前为止所做的尝试。当然,如果我取消注释 CTYPE 上面的行,但它不是通用的。正如您可以从函数的名称中猜到的那样,我想填充一个组合框或一个帮助文本字段,但我还没有完成该代码,我假设一旦组合框部分工作,我就可以猜出文本框部分。查询将是相同的,只是一个文本框而不是组合框。
CTYPE 是我的错误,我试图从一个模块中执行此操作,所以它非常通用,如果我将它放在表单代码中,它当然可以工作。 ** 我删除了 SQL,因为它使问题变得混乱。我现在用 loadComboBoxOrHelp(Me, cmbSrcType) 来调用它
Public Sub loadComboBoxOrHelp(ByVal formName, ByVal boxName)
Try
CType(formName.Controls(boxName), ComboBox).Items.Add("ABC") 'myReader.GetString("lookupValue").ToString)
Catch ex As Exception
MessageBox.Show("Error while retrieving records on table Lookups..." & ex.Message, "Lookups Table")
Finally
If conn.State = ConnectionState.Open Then conn.Close()
End Try
End Sub
结束模块
【问题讨论】:
-
为什么不直接传递组合框控件而不是嵌入名称的字符串?
标签: .net vb.net generics combobox