我在Excel VBA中创建了一个Userform,其上有一个未绑定的Listbox,其MultiSelect属性设置为Extended。当该列表框通过除单击列表项之外的任何方式获得焦点时,该列表中的所有项目都会出现虚线焦点矩形。
以下是一些代码,显示了将MultiSelect设置为Single以进行比较的另一个列表框旁边的现象。创建一个Userform,在其上放置两个Listbox,并将代码添加到表单。当您启动表单时,在列表框之间选项卡以查看我所描述的内容。
Private Sub UserForm_Activate()
ListBox1.MultiSelect = fmMultiSelectSingle
ListBox2.MultiSelect = fmMultiSelectExtended
Dim i As Integer
For i = 1 To 15
ListBox1.AddItem String(i, Chr(i + 64))
ListBox2.AddItem String(i, Chr(i + 64))
Next
End Sub
有没有办法去除焦点矩形或阻止它们出现?
谢谢,
答案 0 :(得分:1)
我已在Excel 2010中试验过您的代码并确认您的观察结果。如果我创建了两个列表框,请输入提供的代码,启动表单并按Tab键将焦点放在ListBox2上,所有行周围都会出现虚线。
如果我像以前一样创建两个列表框,手动将 ListBox2 / Properties / Multiselect 设置为 2 - fmMultiSelectExtended ,运行并选项卡到ListBox2,讨厌的线条消失。< / p>
对我而言,这是相当稳定的,表单现在可以存活多个窗口激活更改,来回跳跃等等。
不要问我为什么......