焦点矩形出现在VBA中的所有列表框项目上

时间:2012-11-14 16:28:02

标签: excel-vba vba excel

我在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

有没有办法去除焦点矩形或阻止它们出现?

谢谢,

1 个答案:

答案 0 :(得分:1)

我已在Excel 2010中试验过您的代码并确认您的观察结果。如果我创建了两个列表框,请输入提供的代码,启动表单并按Tab键将焦点放在ListBox2上,所有行周围都会出现虚线。

如果我像以前一样创建两个列表框,手动将 ListBox2 / Properties / Multiselect 设置为 2 - fmMultiSelectExtended ,运行并选项卡到ListBox2,讨厌的线条消失。< / p>

对我而言,这是相当稳定的,表单现在可以存活多个窗口激活更改,来回跳跃等等。

不要问我为什么......