开发者

e.keyChar does not work for Ctrl

This code shows hashcodes of pressed button, but when i press on Control button i does not do anything. Can help me someone?

 private void tree开发者_StackOverflow社区View1_KeyPress(object sender, KeyPressEventArgs e)
    {
       MessageBox.Show(e.KeyChar.GetHashCode().ToString());
    }

C# WinForms


Ctrl is a modifier key, so it doesn't generate keypress events in its own right.

Think of a keypress as an actual character that has been typed (e.g. "A"). In contrast, the modifier keys (Ctrl, Alt and Shift) don't usually "type" anything, they tend to work in conjunction with other keys to modifiy their effect (e.g. shift changes an "a" int an "A"; ctrl often changes "a" into the hotkey for "Select All", Alt may try to open the main menu (if any) that starts with the letter "A")

To use ctrl you would usually either check its state at the point where a normal key is pressed (e.g. when "A" is pressed, to determine whether the keypress means "A" or "ctrl+A"), or you might check the key state asynchronously (e.g. while dragging, checking if ctrl is held down to apply a modification to the drag such as constraining it to drag only in one axis, or to copy the files being dragged rather than moving them)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜