Click по кнопке (command): результат - непонятки.

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

Click по кнопке (command): результат - непонятки.

Сообщение Alex404 » 12.06.2003 (Чт) 9:04

Подозреваю, что вопрос наивный, возможно даже глупый, но тем не менее ...
На форме - Кнопка (Command)
Если верить VB помимо всего прочего ей сопоставлены Event-ты: Click, KeyUp, KeyDown.
Вот и пишем
Sub Command1_Click()
MsgBox "Кликнули"
End sub
Sub command1_KeyUp (KeyCode As Integer, Shift As Integer)
MsgBox "КейАпнули"
End sub
Sub command1_KeyDown (KeyCode As Integer, Shift As Integer)
MsgBox "КейДаунули"
End sub
Click в чистом виде (то есть мышью) неактуален - мыши не предполагается, посему мужественно жмем на ENTER - Вылетает " Кликнули ", т.е. 2-й и 3-й Sub-ы проигнорировали как нажатие кнопки ENTER, так и ее отпускание.
Ладно Клик так Клик. Пишу свой код в это вобытие. Код передает фокус вледующему контролу на форме, которому тоже прописано свое событие KeyUp. И тут выясняется, что то первое нажатие на ENTER не пропало бесследно, не трансформировалось в Click, а классно так сработало уже на новом контроле.
По моему скромному мнению получилось слишком много суеты от одного нажатия пусть и на большую кнопочку.
Просветите парня ... пошли вторые сутки...

ZeroX
Бывалый
Бывалый
 
Сообщения: 207
Зарегистрирован: 29.04.2003 (Вт) 12:36
Откуда: Мой адрес не дом и не улица, мой адрес Советский Союз

Сообщение ZeroX » 12.06.2003 (Чт) 10:26

Нажатие ENTER по буттону воспринимаеться как клик мышью, то есть в этом случае событие Click имеет больший приоритет нежели кейапы и кейдауны
Каждый warning мечтает стать error'om

Alex404
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 109
Зарегистрирован: 22.09.2002 (Вс) 10:58

Сообщение Alex404 » 12.06.2003 (Чт) 10:44

Отсутствие Sub-a на событие Click не обеспечивает обработки Up&Down-ов. Они как не обрабатывались так и не обрабатываются .
То есть они работают, но только если жали не на ENTER...
Грустная история... Так че? Кнопку в лоб не заставить обрабатывать нажатие на ENTER ?..

TimeKeeper
Постоялец
Постоялец
 
Сообщения: 437
Зарегистрирован: 11.10.2002 (Пт) 4:47
Откуда: Russia

Сообщение TimeKeeper » 12.06.2003 (Чт) 11:29

Вылавливай Click, какая тебе разница?

P.S. У Буттона есть еще свойства Cancel и Default, которые наступают по нажатию на Esc и Enter (если выставить в True), не зависимо где фокус (не на другой кнопке). Мож пригодится?..

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 12.06.2003 (Чт) 16:07

Замени
Код: Выделить всё
MsgBox "Text"

на
Код: Выделить всё
Debug.Print "Text"

и многое станет ясным

А события Key??? будут выполнятся только тогда, когда фокус установлен на кнопку. Выставь у формы .KeyPreview=True и обрабатывай события Form_Key???.
Lasciate ogni speranza, voi ch'entrate.

Ilia
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 23.08.2002 (Пт) 17:25
Откуда: Russia

Сообщение Ilia » 18.06.2003 (Ср) 15:44

События от нажатия enter на кнопках не работают.
на других контролах - работают
вместо кнопки можно использовать пикчербокс с подгружаемыми картинками.


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

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

Сейчас этот форум просматривают: PetalBot и гости: 10

    TopList