Я создаю инструмент с помощью C#. Это - Приложение Windows. У меня есть одно текстовое поле на форме, и я хочу присвоить фокус тому текстовому полю, когда пользователь нажимает Ctrl + F или Ctrl + S.
Как я делаю это?
Один из способов - переопределить событие ProcessCMDKey.
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == (Keys.Control | Keys.S))
{
MessageBox.Show("Do Something");
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
EDIT: В качестве альтернативы можно использовать событие keydown - смотрите Как перехватывать клавиши быстрого доступа в Visual Studio .NET.
Добавьте событие, которое фиксирует нажатие клавиши в форме, проанализируйте нажатие клавиши и посмотрите, соответствует ли оно одной из ваших сочетаний клавиш, а затем назначьте фокус.