Обработка комбинации клавиш в Windows Forms.
Здравствуйте! В данной статье мы узнаем как можно добавить
обработку нажатия комбинации клавиш в приложении Windows Forms.
И в действительности ничего особо сложного в этом нет.
Итак, для начала создадим проект в Visual Studio с типом Приложение Windows Forms.
Назовем проект, например, KeyboardShortcutsWForms.
Далее покажу пример с комментариями:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace KeyboardShortcutsWForms
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
/**
* Данный метод вызывается при нажатии клавиш, когда
* форма находится в фокусе. Т.е. если вы переключились на другое окно,
* то данный обработчики не сработает
*
* Второй параметр также может быть использован для обработки комбинации клавиш.
* В таком случае, код в обработчике будет вызван тогда, когда будет нажата определенная
* комбинация на клавиатуре.
*
*/
protected override bool ProcessCmdKey(ref Message message, Keys keyData)
{
// проверяем, если нажаты две клавиши - Control и F
// вы можете добавить столько условий проверки комбинаций, сколько Вам требуется
if (((keyData & Keys.Control) == Keys.Control) && ((keyData & Keys.F) == Keys.F))
{
// здесь может быть вызов любого нужного Вам кода,
// будь то открытие нового окна или запуск какого-либо другого метода
MessageBox.Show("Зачем Вы это сделали? Вы нажали Сontrol + F", Text);
}
return base.ProcessCmdKey(ref message, keyData);
}
}
}
Вот таким простым образом можно сделать обработку нажатия нескольких клавиш
в Windows Forms.