Отловить кнопку Enter на форме

deeeman

Well-known member
04.12.2007
383
0
#1
Привет!

при открытии формы на ней 2 кнопки, если случайно нажать Enter выполняется кнопка, которая была выделена на форме..

как сделать так чтобы при нажатии на Enter блокировать действие кнопок?
где ее отловить и как?
 

nvyush

Lotus team
22.04.2009
2 317
0
#2
У кнопки случайно не стоит тип ОК (первая закладка свойств)?
 

hosm

* so what *
18.05.2009
2 442
6
#4
deeeman
а зачем это надо? в общем-то удобно нажимать кнопку с клавиатуры.
т.е. как определите "случайно" или нет пользователь нажал кнопку?
Если не заполнил какие-то поля - можно определить и проверить или установить дефолтные значения, которые потом учитывать...
если есть редактируемое текстовое поле, чтоб при открытии диалога сразу не срабатывал энтер на дефолтной кнопке, иногда помогает установка дефолтного фокуса в диалоге на это поле и флага Allow Multiple Lines - тогда по энтер в поле добавляется новая строка (потом ее можно заменить на пробел) ...
но стоят ли эти извраты над уи-нотесом конечной цели?
 

deeeman

Well-known member
04.12.2007
383
0
#5
Т е я понял что просто так не отловить enter?

на форме есть свойство: onKeyPress

там это не отловить явой?
 

hosm

* so what *
18.05.2009
2 442
6
#6
"просто так" можно отловить только в вебе. мб, с xpages еще как-то можно - не в курсе.
 

Xalet

Well-known member
08.08.2008
410
0
#13
А в кнопке просто запрос сделать по типу "Вы уверены, что хотите сделать ...?" с вариантами Да или Нет не подходит, раз уж она так часто случайно нажимается?
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#14
при открытии формы на ней 2 кнопки, если случайно нажать Enter выполняется кнопка, которая была выделена на форме..
Вероятно, кнопка просто самая первая на форме и получает фокус, либо имеет признак Default (там где тип).
Можно поиграть с фокусом и полем впереди кнопок, либо какую-то кнопку фиктивную сделать и дефаулт ей выставить, ширину 0 мм и размер шрифта 1. Правда, будет казявка видна :)
 

Xalet

Well-known member
08.08.2008
410
0
#15
Вероятно, кнопка просто самая первая на форме и получает фокус, либо имеет признак Default (там где тип).
Можно поиграть с фокусом и полем впереди кнопок, либо какую-то кнопку фиктивную сделать и дефаулт ей выставить, ширину 0 мм и размер шрифта 1. Правда, будет казявка видна smile.gif
А не проще в форме просто выставить опцию No initial focus?