Обработка комбинации клавиш в 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
.

Источник