Вопрос № 23253: Уважаемые эксперты! Как такое может быть - имеется два , в процедуре KeyDown textbox1 пишу:
textbox2.setfocus
textbox1.setfocus
но при этом процедура lostfocus textbox2 не вызывается! Тогда пишу
textbox2.setfocus
Call texbox2_Lost...
Вопрос № 23.253
Уважаемые эксперты! Как такое может быть - имеется два , в процедуре 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, 00:50
Вопрос задал: Александр А.А. (статус: Посетитель)
Всего ответов отправлено: 2
Отвечает: Залетин Виталий Викторович
Здравствуйте, Александр А.А.!
LostFocus возникает именно ПОСЛЕ всех Кейдаунов, кликов и т. д., т. е. во время потери окном фокуса.
Скорее всего бейсик игнорирует ее, либо выполняет, но Вы этого не замечаете. КейДаун происходит при нажатии ЛЮБОЙ клавиши в активном окне: стрелки, Энтер, пробел и т. д. По логике, у вас при таком раскладе вообще должен тормозиться ввод в текстовое окно textbox1, т. к. Вы скачете постоянно из одного окна в другое.
А если Вы явно вызываете Call texbox2_LostFocus(), то оно будет вызываться.
Отвечает: Tsechoev Bagaudin
Здравствуйте, Александр А.А.!
Незнаю, может я не догнал?
Нельзя ли написать, чего Вы добивались?
Я тут вижу только беспорядочный вызов методов ...
--------- Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: 7-ой класс)
Отправлен: 09.07.2005, 17:15