Как создать сочетания клавиш Alt в приложении Windows Forms?

Я хотел бы создать сочетания клавиш для некоторых элементов управления в моем приложении Windows Forms.

пример:

Screenshot of XYZ

обратите внимание на подчеркнутый, F E V P B.

У меня есть метка и элемент управления TextBox. Я хотел бы связать это Alt сочетание клавиш для метки и текстового поля. Так что если кто-то нажимает Alt + B основное внимание уделяется связанное текстовое поле. Есть ли способ создать это ассоциация?

3 ответов


когда метка получает фокус от нажатия клавиши акселератора (установите с помощью &), он перенаправляет фокус на следующий элемент управления в порядке табуляции, так как метки не редактируются. Вам нужно, чтобы textbox был следующим элементом управления в порядке табуляции.

чтобы просмотреть и исправить порядок вкладок формы, используйте команду Вид + порядок вкладок в среде IDE. Использование TabPages или других контейнеров добавляет уровень вложенности в порядок вкладок (например,1.1, 1.2 вместо 1 и 2), но если метка и текстовое поле в одном контейнере не должно быть слишком трудно правильно установить.


тип &File или &Edit и вы получите нужное подчеркнуть. Это автоматически свяжет подчеркнутые буквы с Alt ярлык для сайта.

правка. Ваш вопрос изменился, поэтому я хотел бы идти в ногу с моим ответом. Вы хотели бы поймать комбинацию клавиш (Alt + F) и установите фокус на текстовое поле.

вы можете попробовать это решение, используя событие KeyDown основной формы.

    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Alt && e.KeyCode == Keys.F)
        {
            this.textBox1.Focus();
        }
    }

чтобы достичь этого, вы должны дополнительно установить KeyPreview собственность формы на true.


this.KeyDown += new KeyEventHandler(Form1_KeyDown);

void Form1_KeyDown(object sender, KeyEventArgs e) 
{ 
 if (e.Alt && e.KeyCode == Keys.W)
 { 
   btnShowConstructionCdFun(); 
 } 
}