场景
我有两个名为openItemList
和serialNumber
的列表框。 serialNumber
条目是openItemList
每行的唯一编号。这意味着每个openItemList
都有一个唯一的serialNumber
。但是openItemList
在不同的行中可以有重复的值。用户只能理解openItemList
,然后选择此项。由于相应的serialNumber
也基于openItemList
进行选择,因此我的程序正在使用serialNumber
作为搜索词标准来查找相关的行数据,并相应地更新正确的行。
当前,我能够同时选择两个列表框,因为我将multiselect属性设置为单个条目。我使用以下代码来实现
Private Sub openItemList_Click()
serialNumber.ListIndex = openItemList.ListIndex
End Sub
Private Sub openItemList_Scroll()
serialNumber.TopIndex = openItemList.TopIndex
End Sub
Private Sub serialNumber_Click()
openItemList.ListIndex = serialNumber.ListIndex
End Sub
Private Sub serialNumber_Scroll()
openItemList.TopIndex = serialNumber.TopIndex
End Sub
当前问题
现在,我想让用户在列表框中选择多个行,以便用户可以一次更新多个行。当我将两个列表框的属性更改为MultiSelectExtended
时,选择依赖项不再起作用。因此,我无法再基于serialNumber
搜索相应的行。有人知道如何在更改为MultiSelectExtended
模式时同时选择两个列表框吗?
当前,这就是两个列表框的行为。当我选择一个列表框时,另一个列表框的相应值也会突出显示。
当我更改为Multiselect时,它的行为如下所示,没有同时进行选择
答案 0 :(得分:1)
您必须:
使用Change
事件代替Click
一个事件
将每个元素Selected
属性的两个列表框匹配:
如下:
Private Sub openItemList_Change()
Dim i As Long
With openItemList
For i = 0 To .ListCount - 1
serialNumber.Selected(i) = .Selected(i)
Next
End With
End Sub
还要将openItemList_Scroll()
更改为openItemList_MouseDown()
以配对列表框可见元素