Аналог AfterUpdate Есть ли?

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

MadNike
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 07.02.2005 (Пн) 10:29

Аналог AfterUpdate Есть ли?

Сообщение MadNike » 23.11.2006 (Чт) 11:09

Помнится в VBA у каждого бокс-контрола на форме было такое событие AfterUpdate. Генерилось оно после того как юзер что либо в нем поменял. А кто как реализует подобное событе в .Net?
Поясню: скажем у элемента TextBox есть событие TextChanged, но оно генерится как после изменения пользователем, так и после задания нового значения свойству Text ПРОГРАММНО, а старый добрый AfterUpdate таких вещей не делал.
Пробовал слушать TextChanged в купе с прослушкой LostFocus, но получается как-то громоздко и нестабильно (в частности срабатывает после первого показа формы даже если юзер ничего не менял).
:?: Может быть кто-нибудь подскажет более "удобоваримую" реализацию? Заранее благодарен.

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

Сообщение GSerg » 23.11.2006 (Чт) 11:31

Используй флаг, Люк...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

MadNike
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 07.02.2005 (Пн) 10:29

Сообщение MadNike » 23.11.2006 (Чт) 13:40

GSerg

Спасибо, за проявленный интерес. Но я
Пробовал слушать TextChanged в купе с прослушкой LostFocus
, и конечно же делал это через флаг. Однако, хотелось бы иметь более изящное и главное стабильно работающее решение.

Например: при открытии формы каждый textbox генерит событие TextChanged. Таким образом, используя флаг на TextChanged и следя за ним в LostFocus, получаем реакцию на все текстбоксы в форме после ее открытия ВНЕ ЗАВИСИМОСТИ от того изменял их пользователь или нет. Конечно можно после открытия формы сбрасывать флаги по всем текстбоксам, но это все громоздко.
Вот я и подумал:может я велосипед изобретаю и кто нибудь более опытный, чем я, ткнет пальцем в какое-нибудь простое решение. (Чтоп велосипед не изобретать)

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

Сообщение GSerg » 23.11.2006 (Чт) 13:55

MadNike писал(а):Спасибо, за проявленный интерес. Но я
Пробовал слушать TextChanged в купе с прослушкой LostFocus
, и конечно же делал это через флаг. Однако, хотелось бы иметь более изящное и главное стабильно работающее решение.

:?
Нды... Без комментариев...


private flag as boolean

private sub handler(...) handles text1.textchanged
if not flag then
...
end if
end sub

private sub change_text_from_code()
flag=true
text1.text="sdfsdgffdg"
flag=false
end sub
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

MadNike
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 07.02.2005 (Пн) 10:29

Сообщение MadNike » 23.11.2006 (Чт) 15:56

GSerg

Немножко не то, но за идею спасибо. Нагружу текстбокс дополнительным свойством ( к примеру CanModifiedByCode as boolean), сделаю его по defaut флагом запрещения генерации событий, а по предоставлении пользователю этих текстобоксов - буду флаги сбрасывать.

Еще раз спасибо :wink:


Вернуться в Visual Basic .NET

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

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

    TopList