读书人

为何Combo1_DblClick(Index As Intege

发布时间: 2013-07-21 21:55:43 作者: rapoo

为什么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事件。

读书人网 >VB

热点推荐