Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.66/73: Рейтинг темы: голосов - 73, средняя оценка - 4.66
body90
366 / 299 / 18
Регистрация: 26.05.2009
Сообщений: 2,676
#1

Событие нажатия сочетания клавиш

27.11.2009, 00:12. Просмотров 13407. Ответов 7
Метки нет (Все метки)

Здравствуйте! Подскажите:
1) Как сделать в форме другую реакцию на ALT+F4?
2) Как вообще обрабатывать сочетания?
3) Как определить, что была нажата клавиша со стрелкой?

Пробовал так:
C#
1
2
3
4
5
6
7
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
        if (e.KeyChar == 13)
        {
                e.Handled = true;
        }
}
но не знаю как проверить на сочетание клавиш или на клавиши, имеющие дбубитные значения (стрелки и т. д.)
2
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2009, 00:12
Ответы с готовыми решениями:

Перехват нажатия сочетания клавиш в пределах формы
Мне надо обработать сообщение с клавиатуры что бы пользователь нажимал на ctrl...

Сочетания клавиш в DataGridView
Привет всем. Такой вопрос, как в datagridview поймать сочетания клавиш по типу...

Нажатие сочетания клавиш из программы
Хочу создать программу, которая сама будет нажимать сочетание клавиш Ctrl +...

Не работает перехват сочетания клавиш
private void Form1_KeyDown(object sender, KeyEventArgs e) { ...

Как назначить сочетания клавиш?
Помогите пожалуйста зарегистрировать горячие клавиши.К примеру я запускаю...

7
kirill29
2065 / 1228 / 169
Регистрация: 01.02.2009
Сообщений: 2,842
27.11.2009, 00:46 #2
Лучший ответ Сообщение было отмечено как решение

Решение

Перехват Alt+F4:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public Form1()
        {
            InitializeComponent();
            this.KeyPreview = true;
        }
 
        protected override void OnKeyDown(KeyEventArgs e)
        {
            base.OnKeyDown(e);
            if (e.KeyCode == Keys.F4&&e.Alt) 
            {
                MessageBox.Show("Тест");
                e.Handled = true;
            }
        }
Добавлено через 3 минуты
Таким же макаром и нажатие на стрелки:
C#
1
2
3
4
5
if (e.KeyCode == Keys.Down||e.KeyCode ==Keys.Left||e.KeyCode ==Keys.Right||e.KeyCode ==Keys.Up) 
            {
                MessageBox.Show("Тест");
                e.Handled = true;
            }
21
gyrgen
10 / 10 / 7
Регистрация: 24.04.2017
Сообщений: 32
Записей в блоге: 5
13.06.2017, 13:35 #3
А как отследить нажатие если приложение свёрнуто?
0
SatanaXIII
Супер-модератор
Эксперт С++
5773 / 2772 / 376
Регистрация: 01.11.2011
Сообщений: 6,744
Завершенные тесты: 1
23.05.2018, 15:02 #4
Цитата Сообщение от gyrgen Посмотреть сообщение
А как отследить нажатие если приложение свёрнуто?
Если приложение свернуто, то нажатие ему не передастся.
0
Andreyip
19 / 19 / 14
Регистрация: 17.08.2014
Сообщений: 129
23.05.2018, 15:42 #5
SatanaXIII,
каким образом тогда работает puntoswitcher через Winapi?
0
SatanaXIII
Супер-модератор
Эксперт С++
5773 / 2772 / 376
Регистрация: 01.11.2011
Сообщений: 6,744
Завершенные тесты: 1
23.05.2018, 15:59 #6
Andreyip, да. Нажатие передается системе; система определяет кто из запущенных приложений в данный момент ожидает ввода и отсылает ему нажатую клавишу. Puntoswitcher либо перехватывает это нажатие, обрабатывает его, а потом сам отправляет ожидающему приложению, либо после обработки отдает обратно системе, чтобы та отнесла уже на место.
1
Andreyip
19 / 19 / 14
Регистрация: 17.08.2014
Сообщений: 129
23.05.2018, 16:01 #7
SatanaXIII, Ясно, спасибо за разъяснение.
0
gyrgen
10 / 10 / 7
Регистрация: 24.04.2017
Сообщений: 32
Записей в блоге: 5
26.05.2018, 15:30 #8
А может есть какие-нить примеры реализации этого?
0
26.05.2018, 15:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2018, 15:30

Возможно ли создать нестандартные сочетания клавиш
Возможно ли создать сочетание клавиш типа "6+стрелка вверх"?

Глобальный перехват сочетания клавиш Ctrl+V
Не могу разобраться и никто не может мне помочь в этом вопросе, уже столько...

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


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

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

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