我需要在WinForm中设置键盘快捷键复选框。用于检查或取消选中。
我不知道这种可能性,。
但是借助箭头键和空格键的帮助,可以完成。
我的要求就像下面,..
Alt + C - Checked
Alt + U - Un checked.
是否存在任何可能性?。
答案 0 :(得分:3)
您可以像这样手动检查表单keydown中所需的组合键(假设C#): - 你应该尝试一些其他的组合键,因为Cody Gray提到了保留的键盘助记符。
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
// When the user presses both the 'Alt' key and 'C' key,
if (e.Alt && e.KeyCode.ToString() == "C")
{
//check the checkbox
this.checkBox1.Checked= true;
}
// When the user presses both the 'Alt' key and 'U' key,
if (e.Alt && e.KeyCode.ToString() == "U")
{
//Uncheck the checkbox
this.checkBox1.Checked= false;
}
}
检查Form.KeyPress属性以获取或设置一个值,该值指示在将事件传递给具有焦点的控件之前表单是否将接收键事件。
答案 1 :(得分:1)
您可以使用助记符...(如果您不介意在复选框的文本中包含要用于快捷方式的键)。
...然后当按下alt键时,按键将在文本中显示为带下划线。按下助记键将交替检查&取消选中该复选框。
答案 2 :(得分:0)
您可以通过覆盖表单控件的processCmdKey
来实现此目的。您可以通过这种方式设置所有快捷方式。请检查以下代码(VB.NET):
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, keyData As System.Windows.Forms.Keys) As Boolean
If keyData = Keys.N Then
''call a method that check or uncheck the control
End If
''you can even combine modifiers keys
If keyData =keys.Control + Keys.T Then
''do something
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function