0

此代码显示按下按钮的哈希码,但是当我按下控制按钮时,我什么也不做。可以帮我一个人吗?

 private void treeView1_KeyPress(object sender, KeyPressEventArgs e)
    {
       MessageBox.Show(e.KeyChar.GetHashCode().ToString());
    }

C# WinForms

4

1 回答 1

4

Ctrl 是一个修饰键,因此它本身不会生成按键事件。

将按键视为已键入的实际字符(例如“A”)。相比之下,修饰键(Ctrl、Alt 和 Shift)通常不会“键入”任何内容,它们倾向于与其他键一起工作以修改其效果(例如 shift 将“a”更改为“A”;ctrl经常将“a”更改为“全选”的热键,Alt 可能会尝试打开以字母“A”开头的主菜单(如果有))

要使用 ctrl,您通常会在按下普通键时检查其状态(例如,当按下“A”时,以确定按键是指“A”还是“ctrl+A”),或者您可以检查异步键状态(例如,在拖动时,检查是否按住 ctrl 以对拖动应用修改,例如将其限制为仅在一个轴上拖动,或复制正在拖动的文件而不是移动它们)

于 2011-01-06T22:41:11.390 回答