我正在嘗試編寫一個通用的例程以在窗體加載時填充組合框。我從MySql獲取數據並填充組合框,但它不適用於groupbox內的任何組合框。嘗試傳遞formname,groupbox名稱,comboname byVal和byRef,嘗試傳入作爲對象,字符串,控件,嘗試各種ctypes和trycast,似乎無法找到神奇的語法。我有一個測試表單,包含2個組合框,一個位於外部,另一個位於組合框和此代碼中。當組合框在組合框中時,在vbnet中填充組合框
Public Function TESTloadComboBoxOrHelp(ByRef formName As Form, ByVal boxName As Object, ByVal callingName As String) ', ByVal groupBx)
'loadComboBoxOrHelp(me,"comboboxname",me.name)
'tried passing byVal and byRef, no difference
'frmCmbTest has 2 combo boxes, one in a groupbox and one not in groupbox, the one NOT in works
'
If formName.Name.ToString = "frmCmbTest" Then
CType(formName.Controls(boxName), ComboBox).Items.Add("ABC") ' 1: this WORKS because combobox1 is NOT in a groupbox BUT does not work for combobox2 in groupbox
frmCmbTest.ComboBox2.Items.Add("ZYZ") ' 2: NOT Generic, this WORKS even though combobox2 is in a groupbox so why does line 1: above NOT work for a groupbox ?
'formName.boxName.Items.Add("ZYZ") ' 2.1: this does NOT work even though its the equivalent syntax (didn't expect it to)
'formName.groupBx.boxName.Items.Add("ZYZ") ' 2.2: NOPE, Tried passing in the name of the groupbox
'frmCmbTest.CType(formName.controls("Groupbox1"), GroupBox),CType(formName.Controls.boxName.Name.ToString), ComboBox).Items.Add("DEF") ' 3: so of course this should not work, tried to replicate line above (2:) could not figure out syntax that would work.
'frmCmbTest.GroupBox1.ComboBox2.Items.Add("ZYZ") ' 4: does not work, as is expected not to.
'TryCast(formName."GroupBox1".Controls(boxName.Name), ComboBox).Items.Add("MNO") '5: I am guessing I need to add the groupbox name somewhere
TryCast(formName.Controls(boxName), ComboBox).Items.Add("MNO") ' 6: out of ideas, works for combobox1 not in groupbox, does not work for combobox2 in groupbox1
End If
Return 1
End Function
目前,我有5個功能,一個通用的一個填充不在各種形式groupboxes組合框和4個功能是不通用的,它的駕駛我瘋狂。
你讓它太複雜了。 1)如果數據源是數據庫,爲什麼不只是綁定CBO? 2)除此之外,因爲您希望數據進入SPECIFIC cbo,請編寫一個子文件以發佈通過DS/DT和CBO對象引用的數據。所有通過表單名稱和控件名稱查找控件都讓你感到困惑。 – Plutonix
不確定當你只有1個表單時你爲什麼要這樣做?你只需要命名你的組合框並填寫它,它不管它是否在groupbox中。只是簡單的combobox1.items.add()/ combobox2.items.add()應該做 – Nocturnal
我有幾種形式,我沒有想過綁定它,我很習慣只做簡單的舊SQL,我沒有想到那。我會研究它,因爲它是有道理的。 – Mike