Событие ComboBox Enter исчезло из Обозревателя объектов - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть модуль класса, в котором я расширяю функциональность MSForms ComboBox в моем проекте Excel VBA. Я добавил ссылку на поле со списком в свой класс:

Private WithEvents cBox As ComboBox

Я добавил несколько обработчиков событий для этого поля со списком, включая событие Enter:

Private Sub cBox_Enter()
  ...
End Sub

Это работало нормально, и однажды мое событие Enter прекратило срабатывать. Поэтому я начал расследование и обнаружил, что он больше не указан как одно из событий в моем списке событий для «cBox». На самом деле другие события также отсутствуют. Я не делал никаких изменений в списке литературы, когда это произошло. Последнее изменение, которое я сделал перед тем, как это произошло, - закомментировал некоторые события, которые я не использовал для выполнения своих функций. Комментирование и восстановление их не вернуло События. Все отсутствующие обработчики событий теперь перечислены как функции самого класса (например, cBox_Enter)

Текущий список имеет:

BeforeDragOver
BeforeDroporPaste
Change
Click
DblClick
DropButtonClick
Error
KeyDown
KeyPress
KeyUp
MouseDown
MouseMove
MouseUp

Однако тот же элемент управления ComboBox в пользовательской форме по-прежнему перечисляет все пропущенные события:

AfterUpdate (*)
BeforeDragOver
BeforeDroporPaste
BeforeUpdate (*)
Change
Click
DblClick
DropButtonClick
Enter (*)
Error
Exit (*)
KeyDown
KeyPress
KeyUp
MouseDown
MouseMove
MouseUp

События с (*) выше отсутствуют в классе, но присутствуют в списках UserForm. Я также пошел в обозреватель объектов и посмотрел на объект ComboBox, а в обозревателе классов эти события также отсутствуют.

Кто-нибудь видел это раньше и знает, как вернуть эти события в модуль класса?

ПРИМЕЧАНИЕ. Я использую Excel 2003

1 Ответ

0 голосов
/ 14 сентября 2018

Вначале недостаточно репутации, чтобы публиковать комментарии и публиковать ответы.

Я заметил, что элементы управления имеют меньше событий и методов при использовании на листе, чем в пользовательской форме, пробовал это на пустом листе в 2003 году и Office 365. На разных системах.

...