2010-03-23 3 views
7

Я строю инструмент, используя C#. Это приложение для Windows. У меня есть одно текстовое поле на форме, и я хочу, чтобы назначить фокус, что текстовое поле, когда пользователь нажимает Ctrl +F или Ctrl +S.Как назначить клавишу быстрого доступа (что-то вроде Ctrl + F) в текстовое поле в Windows Forms?

Как это сделать?

ответ

1

Захватите событие KeyDown и поместите в него инструкцию if, чтобы проверить, какие клавиши были нажаты.

private void form_KeyDown(object sender, KeyEventArgs e) 
{ 
    if ((e.Control && e.KeyCode == Keys.F) || (e.Control && e.KeyCode == Keys.S)) { 
     txtSearch.Focus(); 
    } 
} 
10

Один из способов - переопределить событие 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 событие - см How to capture shortcut keys in Visual Studio .NET.

+0

Я использовал альтернативу, но это проще! +1 – Joel

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^