У меня возникла проблема с тем, как ведет себя список в форме Excel. Действия по воспроизведению проблемы:Проблема с формой формы Excel при использовании заблокированного свойства
- Создать пользовательскую форму с контролем один ListBox
Используйте следующий код с этим пользователем формы:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Me.ListBox1.Locked = True Me.ListBox1.Locked = False End Sub Private Sub UserForm_Initialize() Dim i As Integer For i = 1 To 10 Me.ListBox1.AddItem i Next i End Sub
Когда форма первого показано, I я могу нормально перемещаться по списку, используя клавиши со стрелками и клавиши страницы. Однако после запуска события двойного щелчка вся навигация по клавиатуре не влияет, в том числе табуляция на другие элементы управления (если они находятся в форме). Нажатие на список, похоже, работает, и схема фокуса отображается правильно, но есть что-то не так с тем, как фокус обрабатывается после того, как список заблокирован и затем разблокирован. Что происходит?
Использование 32-разрядной версии Office 2013.
Не то, что это особенно полезно, но я также использую 32-разрядную версию Office 2013, и это верно для меня в Excel. – OpiesDad
Вы имеете в виду, что после двойного клика вы могли выбрать элементы в списке с клавиатуры? – Cpu1
@ A.S.H. Куда твой ответ? Попробовав свой код, я заметил, что создание невидимого списка делает фокус на следующем элементе управления. Если нет контроля с доступной вкладкой, фокус «зависает» снова, что делает метод «.SetFocus» из списка обязательным. Таким образом, похоже, что самый надежный способ избежать этой «зависания» клавиатуры - переместить фокус на другой элемент управления, а затем вернуть его обратно в список. – Cpu1