標準の .NET WinForms フォームで linklabel コントロールに割り当てられたキーボード ショートカットが機能していないことに気付きました。
LinkLabel コントロール インスタンスを作成し、Text プロパティを "Select &All" に割り当てました。ほとんどのコントロール (ラベル、ボタン、ラジオ ボタンなど) では、これによりAlt+Aが指定されたキーボード ショートカットになり、既定のイベント (クリック) がトリガーされます。これは LinkLabel では発生していません (ただし、他のコントロールでは正常に機能しています)。
- キーボード ショートカットが重複していないことを確認しました。
- Clicked をトリガーするのではなく、ショートカットがフォーカスを設定しているかどうかを確認しました。こだわりは変わらず。
- UseMnemonic プロパティが true に設定されていることを確認しました。
何か案は?
解決
チャーリーさん、正しい答えをありがとう。まさに私が必要としていたもの。このコード スニペットはそのままではコンパイルできないため、わずかな変更を加えました。ではなく、構造パラメータとして aLinkLabelLinkClickedEventArgs
が必要です。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;
}
}