0

我正在尝试制作一组​​与数字键盘相对应的九个复选框,例如,点击数字键盘上的“7”键将使左上角的复选框相应地选中或取消选中。

我无法确定的是如何表示 KeyDown 以便无论页面上当前关注什么内容都可以选择项目,以及如何将 KeyDown 指向相应的复选框以使其从被选中状态切换或未选中。谢谢您的意见。

4

1 回答 1

0

在您的表单中,将KeyPreview属性设置为True.

为表单创建一个KeyDown事件处理程序。

KeyDown处理程序应该有类似这样的代码:

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    switch (e.KeyCode)
    {
        case Keys.NumPad1: 
            Toggle(checkBox1); break;
        case Keys.NumPad2:
            Toggle(checkBox2); break;
        case Keys.NumPad3:
            Toggle(checkBox3); break;
        ...
        default:
            break;
    }
}

private void Toggle(CheckBox checkbox)
{
    checkbox.Checked = !checkbox.Checked;
}

如果您不喜欢 switch 语句,另一种选择是设置一个字典,将键映射到复选框。然后在您的 keydown 中,您可以检查该键是否在字典中,如果是,请获取复选框并切换它。

于 2013-03-18T01:50:34.337 回答