在正常情况下不可能返回空值,除非你用代码去运行Combo1_Click过程,又没有选中Combo1当中的任何项才会发生你说的情况,如果是这样,你一定在选中Combo1项目时发生了问题,使控件没能正常的选中应该选的项,如果ComboBox的某项被选中,不管是在界面由用户选中还是在代码里选中,ComboBox都会自动触发Click事件,如果是选中项目时发生了问题,则有两种可能,一是没有选中ComboBox的某项而用代码运行Combo1_Click过程,二是把ComboBox的ListIndex设置为-1而控件自己去运行Click事件时也会这样
Dim cIndex As Long
Dim mStr As String
Private Sub combo_Change()
Print combo.Text
mStr = combo.Text
End SubPrivate Sub Command1_Click()
Print combo.Text
combo.Text = combo.List(cIndex + 1)
cIndex = cIndex + 1
End SubPrivate Sub Form_Click()
Print combo.Text
End SubPrivate Sub Form_Load()
cIndex = -1
Dim mIndex As Long
For mIndex = 0 To 9
combo.AddItem mIndex
Next
End SubLZ可以测试一下以上代码,,,用变量保存的方法可以保证应用中不会出现问题
我添加了两个COMBOBOX.分别为COMBOBOX1和COMBOBOX2
我在COMBOBOX1的CLICK事件中写入:COMBOBOX2.LISTINDEX=COMBOBOX1.LISTINDEX
在COMBOBOX2的Click事件中写入:COMBOBOX1。LISTINDEX=COMBOBOX2。LISTINDEX
为什么变成了死循环。就是当combobox2的内容改变时为什么会调用COMBOBOX2的CLICK事件。
如何可以解决上面的问题呢。就是在COMBOBOX中的内容改变而不调用其中的CLICK事件。
或者有没有其他的事件触发方式??
在Combo1_Click事件中写
if combo1.listindex=combo2.listindex then exit sub
combo2.listindex=combo1.listindex
在Combo2_Click事件中写
if combo1.listindex=combo2.listindex then exit sub
combo1.listindex=combo2.listindex