Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] C#. Перехват нажатия Enter

Ответить
Настройки темы
.NET - [решено] C#. Перехват нажатия Enter

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Имеется: форма с кучкой контролов. По умолчанию переходим между полями кнопкой TAB.
Возник вопрос: а нельзя ли сделать переход по клавише Enter?
Как ни пытался, перехватываются любые кнопки, кроме Enter и некоторых других.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 08:55, 26-02-2010

 

Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Delirium, Если на С++ пойдёт такая идея? В обработчике OnKeyPress компонента Edit по нажатию на Enter устанавливать SetFocus() для другого компонента, например Edit2 в Edit2 устанавливать для Edit3 или другого и так далее.
Код: Выделить весь код
...
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
   if(Key == VK_RETURN) {
      Edit2->SetFocus();
    }
}
...

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:14, 26-02-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Идея понятна, посмотрим, что получится и отпишусь. Минус только в том, что надо кучу раз прописывать данное действие, т.к. полей около 50.

Работает. Единственное но: надо убрать у самой формы привязки к AcceptButton, иначе Enter всегда будет жать на кнопку по умолчанию.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 01:04, 27-02-2010 | #3


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


В итоге родилась небольшая функция:

Код: Выделить весь код
private void ChangeFocus(KeyPressEventArgs e, Control ctrl)
        {
            if(Properties.Settings.Default.FocusByEnter == true)
            {
            if (e.KeyChar.ToString() == "\r")
                ctrl.Focus();
            }
        }
В зависимости от значения параметра Properties.Settings.Default.FocusByEnter, включается или отключается возможность перехода по Enter. Значение меняется в настройках программы. Очень удобно стало

В событии KeyPress стало достаточно вызвать функцию:
Код: Выделить весь код
ChangeFocus(e, TextBoxFIO);

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:53, 27-02-2010 | #4


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата Delirium:
Единственное но: надо убрать у самой формы привязки к AcceptButton, иначе Enter всегда будет жать на кнопку по умолчанию. »
Да-да-да, я тоже это уже заметил.

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 11:41, 27-02-2010 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] C#. Перехват нажатия Enter

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Перехват сообщений Bodler Microsoft Windows 2000/XP 21 08-03-2007 01:46
Перехват обращения к принтеру knzsoft Программирование и базы данных 4 25-03-2006 23:13
Перехват нажатия кнопки в чужом приложении SASHA 333 Программирование и базы данных 5 13-01-2005 18:31
Перехват ICQ Apock Программирование и базы данных 3 13-02-2004 16:59




 
Переход