我已经在Excel VBA中创建了一个用户窗体,在该窗体上有一个未绑定的列表框,其MultiSelect属性设置为Extended。当该列表框通过单击列表项以外的任何其他方式获得焦点时,该列表中的所有项目都会出现,并在其周围带有虚线的焦点矩形。
这是一些代码,该代码显示将MultiSelect设置为Single进行比较的另一个列表框旁边的现象。创建一个用户窗体,在其上放置两个列表框,并将代码添加到窗体。启动表单时,请在列表框之间切换以查看我所描述的内容。
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
有没有办法删除焦点矩形或阻止它们出现?
谢谢,
最佳答案
我已经在Excel 2010中对您的代码进行了实验,并确认了您的观察结果。如果我创建两个列表框,请输入提供的代码,启动表单,然后按Tab键将焦点放在ListBox2上,所有行周围都会出现虚线。
如果我像以前一样创建两个列表框,请手动将ListBox2 / Properties / Multiselect设置为2-fmMultiSelectExtended,运行并将Tab标记为ListBox2,以消除讨厌的线条。
对我来说,这是相当稳定的,该窗体现在可以经受多次窗口激活更改,前后跳转等操作。
不要问我为什么...