Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Ложное срабатывание события change листбокса при запуске формы, Событие change листбокса ложно срабатывает, если курсор, при нажатии на кнопку запуска формы, стоит на месте появления листбокса
 
Продолжаю постигать тайны объекта ListBox. На этот раз событие change листбокса ложно срабатывает, если курсор, при нажатии на кнопку запуска формы, находится на месте появления листбокса. Событие click тоже. В примере расписал подробнее и сделал гротескно большую кнопку. Стилистическое оформление формы и листбокса роли не играет, на свежесозданной форме с «заводскими» настройками эффект тот же.

Вариант решения: расположить кнопку и форму так, чтобы они не пересекались. Но в реальном файле, конечно же, самый лаконичный и правильный вариант их размещения – с пересечением.

Что можно попробовать? Может хитрые флаги, блокировку нажатий в первую секунду после запуска формы или ещё что?  
Событие change листбокса иногда запускается два раза подряд вместо одного
 
Есть файл, в нём таблица. При нажатии на кнопку вызывается форма с листбоксами (листбоксы с мультивыбором и полем для галочки). Далее заголовки таблицы распределяются по листбоксам и, если столбец с заголовком таблицы виден, то в листбокс ставится галочка, если скрыт, то галочка не ставится. И вот форма в таком виде отобразилась перед пользователем. Пользователь должен нажимать на элементы листбоксов (ставить и убирать галочки) и скрывать/отображать таким образом столбцы в таблице. Код скрытия/отображение представлен в модуле класса.

В целом всё работает, но есть стабильно появляется «плавающая» ошибка (или глюк). Заключается она в том, что нажимаешь на какой-то элемент листбокса, а ничего не происходит, только листбокс мерцает и всё. Нажимаешь повторно и вот теперь элемент листбокса на который нажали меняет значение выделения. И так может быть с 2-мя, 3-мя листбоксами после запуска формы, потом глюк пропадает.  Я вывел сообщение, которое говорит нам о том, что событие изменения листбокса сработало и оказалось, что на самом деле не ничего не происходит, а наоборот, событие срабатывает 2 раза. То есть пользователь нажимает на элемент, его выделение меняется, макрос изменения запускается и после окончания макроса опять срабатывает событие изменения.

Как у меня возникает ошибка. Запускаю форму. Нажимаю на первый элемент в каждом листбоксе. На некоторых листбоксах событие вызовется 2 раза, что понятно по сообщению вылетающему 2 раза (сейчас на первом и на последнем листбоксе). Могу приложить видео или гифку такого двойного срабатывания, если это нужно.

Просьба помочь разобраться. Это глюк листбокса или ошибки в коде?
Страницы: 1
Наверх