我试图将从键盘读取的字符变成某个变量以进行进一步操作。如果用户输入了我希望识别的以下列表。
键盘输入列表:
[
]
~
^
部分代码:
void HookManager_KeyUp(object sender, KeyEventArgs e)
{
string test = e.KeyCode.ToString();
此处数字,字母和方括号有效,但需要移位键的^
读取不正确。例如。它读取^在键6上作为字符串值6而不是^应该是。以下是其他读物
所以D6没有意义任何帮助都会受到赞赏。
谢谢
AA
答案 0 :(得分:3)
除了检查KeyCode属性之外,您还需要检查e.Shift是否为真。
答案 1 :(得分:1)
这样做会更容易:
private readonly string VALID_KEYS = "[]~^ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; private void txtBox_KeyPress(object sender, KeyPressEventArgs e) { if (VALID_KEYS.IndexOf(char.ToUpper(e.KeyChar)) != -1 || e.KeyChar == (char)8) e.Handled = false; else e.Handled = true; }
答案 2 :(得分:0)
这可能会有所帮助...
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
const int WM_KEYDOWN = 0x100;
const int WM_SYSKEYDOWN = 0x104;
if ((msg.Msg == WM_KEYDOWN) || (msg.Msg == WM_SYSKEYDOWN))
{
switch (keyData)
{
case Keys.Shift | Keys.D6:
//Your code
break;
}
}
return base.ProcessCmdKey(ref msg, keyData);
}
谢谢, 拉姆