为什么Combo1_DblClick(Index As Integer)事件中 Combo1(Index).ListIndex = -1 不管用
本帖最后由 bcrun 于 2013-06-11 09:48:35 编辑
Private Sub Combo1_DblClick(Index As Integer)
On Error GoTo Errc
Combo1(Index).ListIndex = -1
Exit Sub
Errc:
MsgBox Err.Description
End Sub
以上代码 当在COMBO1上双击时,无响应,好象Combo1_DblClick这个事件没有发生,是怎么回事
COMBO1 STYLE 0 和 1 方式都试过了。
[解决办法]
因为点的不是地方,无意中重新选中了。你试试:
Option Explicit
Private Sub Form_Load()
Dim i As Integer
For i = 1 To 10
List1.AddItem i
Next i
List1.ListIndex = 9
End Sub
Private Sub Command1_Click()
On Error GoTo Errc
List1.ListIndex = -1
Exit Sub
Errc:
MsgBox Err.Description
End Sub
[解决办法]
为了你便于观察。你自己改了试试吧。
[解决办法]
窗体上加一个 TextBox, 其 TabIndex 设置为 0。
Option Explicit
Private Sub Combo1_GotFocus()
On Error GoTo Errc
Combo1.ListIndex = -1
Exit Sub
Errc:
MsgBox Err.Description
End Sub
Private Sub Command1_Click()
MsgBox Combo1.ListIndex
End Sub
Private Sub Form_Load()
Dim i As Integer
For i = 1 To 10
Combo1.AddItem i
Next i
Combo1.ListIndex = 9
End Sub
程序启动后,可以看到 Combo1 的 Text 是 10。点击 Command1 将得 9。按 Tab 键使焦点移到 Combo1 上,可以看到 Combo1 的 Text 变空。此时点击 Command1 将得到 -1。
[解决办法]
ComboBox 的所有鼠标事件,都定义为在下拉的列表上才生效。你在你的代码 Combo1(Index).ListIndex = -1 处打个断点,你看会停在这里吗?
[解决办法]
对呀!那就不要用 ComboBox Click 之类的事件来做此事。
[解决办法]
COMBO一般用click事件。