取消选择单选列表框
我有一个用户窗体上的列表框,在任何时候最多可以选择1个项目。 将列表框设置为MultiSelect = fmMultiSelectSingle
提供了此功能,但可以防止用户取消选择所选列表项。
为了做到这一点,我添加了一个MouseDown
事件,该事件在单击某个项目时触发,而不管当前的选择状态如何,而不是Click
事件,该事件仅在Click
新项目时触发。
我的代码(简化如下)让用户选择一个条目。 当条目被点击时,它被选中。 当尝试取消选择通过单击同一条目,该MouseDown
被触发,该项目被取消,这将触发改变的事件,这是削减短期blnDisableEvents
设置为True
,并返回到MouseDown
子,然后运行到年底。 但是在MouseDown
子MouseDown
上的End Sub
之后,刚被取消选择的项目被重新选择,并再次触发Change
事件。
我怎样才能防止在列表框中重新选择刚取消选择的项目?
建立:
用一个名为ListBox1
码:
Option Explicit
Dim blnDisableEvents As Boolean
Private Sub ListBox1_Change()
If blnDisableEvents Then Exit Sub
End Sub
Private Sub ListBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Not Me.ListBox1.ListIndex = -1 Then
blnDisableEvents = True
Me.ListBox1.Selected(Me.ListBox1.ListIndex) = False
blnDisableEvents = False
End If
End Sub
Private Sub userform_initialize()
Dim i As Integer
With Me
For i = 1 To 2
.ListBox1.AddItem i
Next
End With
End Sub
链接地址: http://www.djcxy.com/p/59903.html