C# 控件键的ListView键向上错误
ListView.KeyDownC# 控件键的ListView键向上错误,c#,listview,visual-studio-2012,keyup,C#,Listview,Visual Studio 2012,Keyup,ListView.KeyDown事件显示以下内容: e KeyData = LButton | ShiftKey | Control base {KeyData = LButton | ShiftKey | Control} Alt false bool Control true bool Handled false bool KeyCode LButton | ShiftKey Ke
事件显示以下内容:
e KeyData = LButton | ShiftKey | Control
base {KeyData = LButton | ShiftKey | Control}
Alt false bool
Control true bool
Handled false bool
KeyCode LButton | ShiftKey
KeyData LButton | ShiftKey | Control
KeyValue 17
Modifiers
Shift false bool
SuppressKeyPress false bool
- e {KeyData = LButton | ShiftKey}
+ base {KeyData = LButton | ShiftKey}
Alt false bool
Control false bool
Handled false bool
KeyCode LButton | ShiftKey
KeyData LButton | ShiftKey
KeyValue 17
Modifiers None
Shift false bool
SuppressKeyPress false
我不喜欢显示
,但显示控制键。
在ListView.KeyUp
上,事件显示以下内容:
e KeyData = LButton | ShiftKey | Control
base {KeyData = LButton | ShiftKey | Control}
Alt false bool
Control true bool
Handled false bool
KeyCode LButton | ShiftKey
KeyData LButton | ShiftKey | Control
KeyValue 17
Modifiers
Shift false bool
SuppressKeyPress false bool
- e {KeyData = LButton | ShiftKey}
+ base {KeyData = LButton | ShiftKey}
Alt false bool
Control false bool
Handled false bool
KeyCode LButton | ShiftKey
KeyData LButton | ShiftKey
KeyValue 17
Modifiers None
Shift false bool
SuppressKeyPress false
是什么让它这么奇怪。浏览网页,看看是否有这种错误的例子,但什么也找不到。我尝试在托管表单上将KeyPreview设置为true,但没有效果
欢迎任何输入。这里没有错误,只需按下并释放Ctrl键即可。调试器并不擅长将键枚举转换为字符串。它被具有[Flags]属性的枚举弄糊涂了,因此它试图将值中的各个位映射到一个键 所以KeyDown=(Keys.Control | Keys.ControlKey)=0x20011。调试器将其修改为
0x20000=Control
0x00010=移位键
0x00001=LButton 和Keyup=(Keys.ControlKey)=0x00011。调试器将其损坏为
0x00010=移位键
0x00001=LButton
或者换句话说,忽略调试器告诉您的内容。这里没有错误,您只需按下并释放Ctrl键。调试器并不擅长将键枚举转换为字符串。它被具有[Flags]属性的枚举弄糊涂了,因此它试图将值中的各个位映射到一个键 所以KeyDown=(Keys.Control | Keys.ControlKey)=0x20011。调试器将其修改为
0x20000=Control
0x00010=移位键
0x00001=LButton 和Keyup=(Keys.ControlKey)=0x00011。调试器将其损坏为
0x00010=移位键
0x00001=LButton
或者换句话说,忽略调试器告诉您的内容。我明白您的意思。那么,我应该如何测试传入的KeyEventArgs以正确地执行它呢?如果您想检测控制键被按下或释放,那么只需使用
If(e.KeyChar==Keys.ControlKey)
这是不寻常的。感谢Hans的教育。真的很感激。我明白你的意思。那么,我应该如何测试传入的KeyEventArgs以正确地执行它呢?如果您想检测控制键被按下或释放,那么只需使用If(e.KeyChar==Keys.ControlKey)
这是不寻常的。感谢Hans的教育。非常感谢。