Как создать сочетания клавиш Alt в приложении Windows Forms?
Я хотел бы создать сочетания клавиш для некоторых элементов управления в моем приложении Windows Forms.
пример:
обратите внимание на подчеркнутый, 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();
}
}