我想将快捷键添加到复选框。复选框没有文本。我有标签,然后是Checkbox。标签有ex的快捷键。 &安培;可见。因此,Label将V作为快捷键。如果有人按Alt + V,则chechbox应从选择状态更改为未选择状态,并以相反方式更改。
答案 0 :(得分:2)
标签控件在键盘助记符方面是特殊的。由于标签无法获得焦点,因此每当您尝试使用键盘助记符将焦点设置为标签时,标签会将焦点设置为标签顺序中的下一个控件。
这适用于文本框和组合框,它们没有任何用于显示标签的内置工具(与复选框和选项按钮控件形成对比)。要为这些控件设置助记符,请在它们旁边放置一个标签,为其设置助记符,并确保它在Tab键顺序中的文本框之前。这样,当用户激活标签的键盘助记符时,它会自动将焦点设置到文本框控件。你在Windows中已经看到了这个:
好吧,如果必须的话,你可以用复选框控件做同样的事情(尽管我真的不确定你为什么要这样做)。设置标签的助记符(&Visible
),然后将标签放在要使用的复选框旁边。 Use the TabIndex
configuration options in the Visual Studio IDE确保标签的标签索引为 n ,复选框控件的标签索引为 n + 1 。
无需覆盖ProcessCmdKey
或其他任何困难的事情。
答案 1 :(得分:1)
您可以像这样查看以下代码部分。
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
// look for the expected key
if (keyData == Keys.Alt && keyData == Keys.V)
{
checkBox1.Checked = true;
return true;
}
else
{
checkBox1.Checked = false;
return false;
}
}