Событие KeyDown

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

Событие KeyDown

Сообщение Чудик » 23.09.2004 (Чт) 11:05

Добрый день!
На данный момент испытываю трудность с упомянутым событием. Создаю форму и пишу:

Private Sub UserForm_KeyDown(ByVal KeyCode As _ MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode=vbKeyF12 Then msgBox "Ау"
End Sub

Все работает - при нажатии на клавишу F12 выходит диалог. Но стоит установить на форму кнопку или др. элемент, уже не работает. Даже событие не фиксируется. Понимаю фокус где-то не на форме, но и не на кнопке. Так где? Или фишка не в фокусе? Или как?
Век живи - век учись!
www.detal-plast.narod.ru

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 23.09.2004 (Чт) 11:29

Ты сам ответил на свой вопрос: фокус переходит на добавленный контрол

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Событие KeyDown

Сообщение Чудик » 23.09.2004 (Чт) 11:36

Sorry, притормозил. :oops:
Век живи - век учись!
www.detal-plast.narod.ru

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 23.09.2004 (Чт) 15:09

Чудик, если установить у формы KeyPreview = True, то она будет ловить все нажатия на кнопки, независимо от фокуса.
Изображение

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 23.09.2004 (Чт) 15:12

tyomitch писал(а):Чудик, если установить у формы KeyPreview = True, то она будет ловить все нажатия на кнопки, независимо от фокуса.

Хорошие замечание!!!

Тимофей_кг
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 19.04.2005 (Вт) 13:39
Откуда: Сланцы

Сообщение Тимофей_кг » 05.05.2005 (Чт) 19:59

Спасибо

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 05.05.2005 (Чт) 22:03

tyomitch писал(а):Чудик, если установить у формы KeyPreview = True, то она будет ловить все нажатия на кнопки, независимо от фокуса.

Прикол хотите? Некоторые контролы не отдают форме KeyPreview. Т.е. все работает так, как будто это свойство не установлено. Я сейчас не вспомню точно, но по-моему Treeview был за этим пойман и точно один из штатных гридов (MSHFlex, кажется). Так что даже тут гарантий нет.


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

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

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

    TopList