【问题标题】:e.keyChar does not work for Ctrle.keyChar 不适用于 Ctrl
【发布时间】:2011-01-07 06:41:11
【问题描述】:

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

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

C# WinForms

【问题讨论】:

标签: c# winforms keyboard hashcode gethashcode


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-12-17
    • 2011-07-06
    • 2011-03-12
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多