Консультация № 23253
09.07.2005, 00:50
0.00 руб.
0 2 2
Уважаемые эксперты! Как такое может быть - имеется два , в процедуре KeyDown textbox1 пишу:
textbox2.setfocus
textbox1.setfocus
но при этом процедура lostfocus textbox2 не вызывается! Тогда пишу
textbox2.setfocus
Call texbox2_LostFocus()
textbox1.setfocus
всё работает как надо! Заметил, что если после
textbox2.setfocus
textbox1.setfocus
сразу выйти из процедуры KeyDown, то lostfocus textbox2 вызывается! А если надо что-то сделать программе после textbox1.setfocus, то как быть, неужели надо явно вызывать Call texbox2_LostFocus() и почему?

Обсуждение

Неизвестный
09.07.2005, 14:22
общий
это ответ
Здравствуйте, Александр А.А.!
LostFocus возникает именно ПОСЛЕ всех Кейдаунов, кликов и т. д., т. е. во время потери окном фокуса.
Скорее всего бейсик игнорирует ее, либо выполняет, но Вы этого не замечаете. КейДаун происходит при нажатии ЛЮБОЙ клавиши в активном окне: стрелки, Энтер, пробел и т. д. По логике, у вас при таком раскладе вообще должен тормозиться ввод в текстовое окно textbox1, т. к. Вы скачете постоянно из одного окна в другое.
А если Вы явно вызываете Call texbox2_LostFocus(), то оно будет вызываться.
Неизвестный
09.07.2005, 17:15
общий
это ответ
Здравствуйте, Александр А.А.!
Незнаю, может я не догнал?
Нельзя ли написать, чего Вы добивались?
Я тут вижу только беспорядочный вызов методов ...
Форма ответа