Временное отключение события Change ComboBox-а, CheckBox-а и

Программирование на Visual Basic for Applications
Avtopic
Постоялец
Постоялец
 
Сообщения: 442
Зарегистрирован: 30.09.2005 (Пт) 17:15
Откуда: Tbilisi

Временное отключение события Change ComboBox-а, CheckBox-а и

Сообщение Avtopic » 08.05.2006 (Пн) 14:42

Здравствуйте!
Вопрос, который всегда обходил, но, наконец, хочу задать. Может и, очень простой :oops: :oops: :oops: , за что извиняюсь, но ответ, наконец, хочу получить.

1.Часто нужно чтобы, код расположенный в событиях Change или Click ComboBox, CheckBox и т.п. (формы) временно не работал,
примерно, так как действует Application.EnableEvents = False .
я всегда использую специально для этого объявленную Public переменную и устанавливаю и проверяю его в каждом случае.
Случайно, нет ли возможности EnableEvents = False для форм.

2. на той же волне: в данный момент моя задача, чтобы код расположенный в событиях работал только
при ручном изменении содержимого этих объектов,
а при программном изменении ComboBox-а или ему подобных, код не срабатывал.

MouseUp и MouseDown дают содержимое ComboBox-а и CheckBox до изменения (т.е. старое значение) ставил разные DoEvents и Application.ScreenUpdating = True но ничего не помогло.
как в таких случаях поступают другие?
Спасибо!

Avtopic
Постоялец
Постоялец
 
Сообщения: 442
Зарегистрирован: 30.09.2005 (Пт) 17:15
Откуда: Tbilisi

Сообщение Avtopic » 08.05.2006 (Пн) 14:56

Пояснения к части 2 вопроса: в Help - последовательность событии описывается так
1. MouseDown
2. MouseUp
3. Click
4. DblClick
5. MouseUp
Я всегда полагал, что Change должен находится там, где располагается Click (3),
а у меня всегда при наступлении MouseUp в этих контролях фиксируется старое значение.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.05.2006 (Пн) 15:20

1. Правильно.
2. Вопрос был бы ясен, если бы не содержал всех этих разъяснений по поводу очерёдности и т.п.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Avtopic
Постоялец
Постоялец
 
Сообщения: 442
Зарегистрирован: 30.09.2005 (Пт) 17:15
Откуда: Tbilisi

Сообщение Avtopic » 08.05.2006 (Пн) 16:03

GSerg писал(а):1. Правильно.
правильно что? :cry:

GSerg писал(а):2. Вопрос был бы ясен, если бы не содержал всех этих разъяснений по поводу очерёдности и т.п.
никогда вам знатокам не угодишь, то не хватает разъяснений то их много. :) (Шутка)
А если убрать эти разъяснений про очередность? :)

Avtopic писал(а):в данный момент моя задача, чтобы код расположенный в событиях работал только
при ручном изменении содержимого этих объектов,
а при программном изменении ComboBox-а или ему подобных, код не срабатывал
Для этого я перенес код из события Change в MouseUp. не помогло, при наступлении MouseUp в контроле старое Value (Text ).
Этот Value (Text) изменяется после этого события.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.05.2006 (Пн) 16:08

1. Правильно проверять флаг.
2. Правильно проверять флаг! Тот, который устанавливаешь ты, собираясь редактировать элемент.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Avtopic
Постоялец
Постоялец
 
Сообщения: 442
Зарегистрирован: 30.09.2005 (Пт) 17:15
Откуда: Tbilisi

Сообщение Avtopic » 08.05.2006 (Пн) 16:17

Все ясно!
Ото, всегда мучило мысль, может что-то не нахожу в их свойствах и методах.
Спасибо большое.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 76

    TopList