양식이로드 될 때 콤보 상자를 채우기 위해 일반 루틴을 작성하려고합니다. MySql에서 데이터를 가져 와서 콤보 상자를 채우지 만 그룹 상자 안의 콤보 박스에서는 작동하지 않습니다. 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) 데이터 소스가 DB 인 경우 CBO를 바인드하지 않는 이유는 무엇입니까? 2) 데이터가 특정 cbo에 들어가기를 원하므로 DS/DT 및 CBO 객체 참조를 전달하는 데이터를 게시하는 하위를 작성하십시오. formname과 control name에 의한 모든 찾기 제어는 당신을 혼란스럽게합니다. – Plutonix
왜 1 개의 양식 만 가지고있을 때 이것을하고 있는지 확실하지 않습니까? 당신은 당신의 콤보 박스를 이름 짓고 그것을 채울 수 있습니다. 그것이 그룹 박스에 있다면 상관 없습니다. 그냥 평범한 combobox1.items.add()/combobox2.items.add()해야합니까 – Nocturnal
나는 여러 가지 양식을 가지고 있고 그것을 바인딩 생각하지 않았어, 나는 너무 생각을하지 않은 일반 오래된 SQL을하는 데 사용되는 그. 그것이 의미가 있기 때문에 나는 그것을 조사 할 것이다. – Mike