Я заметил, что сочетания клавиш, назначенные элементам управления linklabel в стандартных формах .NET WinForms, не работают.
Я создал экземпляр элемента управления LinkLabel и назначил свойству Text значение «Выбрать и все». Для большинства элементов управления (метка, кнопка, переключатель и т. Д.) Это может привести к тому, что Alt + A станет назначенным сочетанием клавиш для запуска события по умолчанию (нажатие). Это не происходит с LinkLabel (хотя он работает нормально для других элементов управления)
- Я убедился, что сочетание клавиш не является дубликатом.
- Я проверил, является ли ярлык установкой фокуса, а не срабатыванием Clicked. Фокус остается неизменным.
- Я убедился, что для свойства UseMnemonic установлено значение true.
Есть идеи?
Решение
Спасибо, Чарли, за правильный ответ. Именно то, что мне было нужно. Я сделал небольшое изменение, так как этот фрагмент кода не будет компилироваться как есть. LinkLabelLinkClickedEventArgs
требует LinkLabel.Link
в качестве параметра конструкции, скорее спасибо LinkLabel
.
class LinkLabelEx : LinkLabel
{
protected override bool ProcessMnemonic(char charCode)
{
if (base.ProcessMnemonic(charCode))
{
if (this.Links.Count == 0)
return false;
OnLinkClicked(new LinkLabelLinkClickedEventArgs(this.Links[0]));
return true;
}
return false;
}
}