События lost_focus,got_focus......

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Artur KakTus
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 19.02.2004 (Чт) 12:00
Откуда: Ukraine

События lost_focus,got_focus......

Сообщение Artur KakTus » 17.03.2004 (Ср) 18:01

Уважаемые знатоки и любители ВБ
Вопрос:
У меня не получается применять события типа lost_focus, got_fokus, keyup.....
Проблема в том что событие ченж (для тект бокс) происходит при любом изменении тексового поля и если ты вводишь цифры и при том многозначные, то это событие не совсем подходит. И хотелось бы производить обработку событий после потери фокуса или нажатии клавиши ввод.
Однако VBA упорно игнорирует эти события для моей формы. И самое интересное, что если просто на лист впихнуть тексбокс и задайть lost_focus, тогда все ОТЛИЧНО.

КАК БЫТЬ, прошу совета по этому вопросу. Может я нарушаю какую нибудь последовательность и ????.
Artur KakTus

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

Сообщение GSerg » 18.03.2004 (Чт) 12:02

Зацени событие validate...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Artur KakTus
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 19.02.2004 (Чт) 12:00
Откуда: Ukraine

я наверно полный тормоз

Сообщение Artur KakTus » 18.03.2004 (Чт) 13:08

:oops: прошу прощения, но вот код для примера
КНИГА ЭКСЕЛ (просто поставить текст бокс и для него обработчик события)
Private Sub TextBox2_LostFocus()
MsgBox "Я ПОЛНЫЙ ЧАЙНИК"
End Sub

Прошу заметить РАБОТАЕТ

А ВОТ КОД ТОТ-ЖЕ, НО УЖЕ НА ФОРМЕ, ОН НЕ РАБОТАЕТ???
' №1 ДЛЯ ПОТЕРИ ФОКУСА
Private Sub TextBox1_LostFocus()
MsgBox "huy"
End Sub


' ЭТОТ ОБРАБОТЧИК У МЕНЯ ВООБЩЕ НЕ ПОЛУЧИЛСЯ, ХОТЬ НА ЛИСТЕ ХОТЬ НА ФОРМЕ:
Private Sub TextBox1_Validate()
If Not IsNumeric(TextBox1.Text) Then MsgBox "ehd"
End Sub
наверно не правильно описал :shock:
Artur KakTus

klop086
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 30.01.2004 (Пт) 8:46
Откуда: Москва

Сообщение klop086 » 18.03.2004 (Чт) 22:15

1 проверка после нажатия на ентер:
есть такая api функция GetAsyncKeyState, ей всё просто проверить
(См. Api Guide :shock: )
2 По-моему в textbox есть (на правой кнопке) свойства, где можно просто указать тип переменной, которую он должен содержать
(например Time, Date...)

Может я чего не так понял??? :oops:
Сначала подумай, потом помолчи.

Artur KakTus
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 19.02.2004 (Чт) 12:00
Откуда: Ukraine

и да и нет

Сообщение Artur KakTus » 19.03.2004 (Пт) 14:18

Не совсем ты понял.
Не получается сделать в эксел (именно на форме) обработчик событий типа потеря фокуса объектом, поэтому приходится использовать событие ченж, что не подходит, если к примеру надо выдать сообщение. Тогда Получается так (и не важно какой тип данных должен вводится через текстБокс) , что пользователь еще не ввел данные (к примеру дабл) а ему уже пять сообщений выдало, а это полный отстой. И мне приходится в ченж извращаться, вставлять инпутбокс, где введут число, а потом нажмут на кнопку. Я сначало думал, что VBA не поддержует єти события, НО КОГДА вставил текстбокс на лист - ТО ВСЕ ОК.
И МНЕ СОБСТВЕННО ХОТЕЛОСЬ УЗНАТЬ- может кто-то сталкивался с этим, может надо что-то переключить или ???. Я работаю с офис ХР. :shock:
Artur KakTus


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: Google-бот и гости: 1

    TopList