13 / 13 / 1
Регистрация: 02.03.2013
Сообщений: 192
1

Создание HotKeys (Отловить нажатие клавиши Esc)

02.03.2015, 13:15. Показов 3354. Ответов 8
Метки нет (Все метки)

Добрый день, товарищи.
Подскажите советом - создана форма с BorderStyle = None, на ней лежит во весь рост Panel.
Нужно отловить нажатие Esc и создать для этого дела обработчик.
Стандартные KeyDown для формы не срабатывают, т.к. на форме нет фокуса (и не будет).
Пытался гуглить - мало информации, все ссылаются на документацию.
Есть ли у кого примерное решение вопроса?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.03.2015, 13:15
Ответы с готовыми решениями:

Отловить двойное нажатие клавиши вне формы
Есть программа в трее, есть глобальный хук, который, при нажатии на клавишу, разворачивает ее. Хук...

Отловить нажатие клавиши клавиатуры из другого аккаунта Windows
Может, вопрос глупый, но задам... Пишу на C#. Устанавливаю глобальный хук на клавиатуру. Все...

Отловить нажатие стрелок и другое.
Здравствуйте. Хочу сделать игру "танчики", столкнулся с проблемой. На форумах вычитал, что такой...

Отловить нажатие левой кнопки мыши в системе
Как отловить нажатие левой кнопки мыши в системе? Не в моей программе, а на любом окне в Win.

8
829 / 637 / 100
Регистрация: 20.08.2013
Сообщений: 2,524
02.03.2015, 14:06 2
PreviewKeyPress
0
13 / 13 / 1
Регистрация: 02.03.2013
Сообщений: 192
02.03.2015, 14:23  [ТС] 3
Цитата Сообщение от Qwertiy Посмотреть сообщение
PreviewKeyPress
такого события нет, имеется PreviewKeyDown - аналогично, не срабатывает
0
burning1ife
1447 / 1269 / 293
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
02.03.2015, 14:53 4
C#
1
2
 KeyDown += Form1_KeyDown;
            KeyPreview = true;
C#
1
2
3
4
5
6
7
void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Escape)
            {
                MessageBox.Show("Esc");
            }
        }
Или добавить кнопку на форму и у формы выбрать ее в качестве CancelButton
0
965 / 768 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
02.03.2015, 15:19 5
вот тут посмотрите: Глобальный перехват нажатий клавиш в системе
0
829 / 637 / 100
Регистрация: 20.08.2013
Сообщений: 2,524
02.03.2015, 17:48 6
Цитата Сообщение от Konctantin Посмотреть сообщение
Глобальный перехват нажатий клавиш в системе
Ээээ.. Не надо так.

Добавлено через 1 час 17 минут
Цитата Сообщение от Буджака Посмотреть сообщение
такого события нет
Надо поставить KeyPreview = true и обрабатывать в обычном KeyPress.
0
13 / 13 / 1
Регистрация: 02.03.2013
Сообщений: 192
02.03.2015, 18:32  [ТС] 7
Дело то в том, что форма фокус не получает. Совсем. И не получит никогда.
А что значит в обычном KeyPress? Если в списке событий формы нет заготовки такой, как это событие правильно создать?
0
burning1ife
1447 / 1269 / 293
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
02.03.2015, 20:14 8
Вы про что говорите про Winforms или WPF?
Я показывал рабочее решение для Winforms.

Цитата Сообщение от Буджака Посмотреть сообщение
как это событие правильно создать
Создание HotKeys (Отловить нажатие клавиши Esc)
1
13 / 13 / 1
Регистрация: 02.03.2013
Сообщений: 192
03.03.2015, 08:10  [ТС] 9
WinForms, завтра с утра обязательно попробую

Добавлено через 11 часов 35 минут
Спасибо большое, все работает!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2015, 08:10

Как отловить нажатые клавиши в консольном приложении (неактивной)
Помогите я новичок учусь, все обыскал, нужен кусочек кода который отлавливает все символьные...

Нажатие клавиши
помогите , надо чтоб при нажатии ctrl+k присваивалось значение например а=30

Программное нажатие клавиши
Здравствуйте. Подскажите пожалуйста, WF VS2008. Нужно в программу добавить строчку, по которой...

Нажатие клавиши в консоли
Здравствуйте! Можно ли как-то узнавать: нажата ли клавиша в консоли. И если - нет, то как это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.