我想使用e.KeyData,但它返回“NumPad2”或“D2”我想只返回“2”,可以使用e.keycode或任何..因为它的工作,我已经尝试转换为int和没有用。如何检索最后一个键的检索次数?
回答
这应该让你开始。
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
string pressedKey = e.KeyData.ToString();
if (pressedKey.StartsWith("D"))
{
pressedKey = pressedKey.Replace("D", "");
MessageBox.Show(pressedKey);
}
if (pressedKey.StartsWith("NumPad"))
{
pressedKey = pressedKey.Replace("NumPad", "");
MessageBox.Show(pressedKey);
}
}
工作完美,谢谢你,我不明白为什么C#没有转换器,没有必须适应此.. –
没问题。可能有一个更简单的方法,但这应该让你开始至少。不要忘记接受答案并投票。 –
完成,投票并接受答案,对不起让你等待,我是新用户。 –
经过一番研究,看来,你要么必须做类似于RIKKI乙建议的东西,或者你可以创建自定义文本框和覆盖onKeyDown和的OnKeyPress象下面这样:
首先创建自定义事件的args:
public class CustomKeyEventArgs : KeyEventArgs
{
public char LastCharPressed { get; set; }
public CustomKeyEventArgs(Keys keyData, char lastCharPressed) : base(keyData)
{
LastCharPressed = lastCharPressed;
}
}
然后将其设置自定义文本框:
public delegate void CustomKeyUpHandler(object sender, CustomKeyEventArgs e);
public event CustomKeyUpHandler OnCustomKeyUp;
private char lastChar;
protected override void OnKeyPress(KeyPressEventArgs e)
{
lastChar = e.KeyChar;
base.OnKeyPress(e);
}
protected override void OnKeyUp(KeyEventArgs e)
{
if(OnCustomKeyUp != null)
OnCustomKeyUp(this, new CustomKeyEventArgs(e.KeyData, lastChar));
base.OnKeyUp(e);
}
最后回答工作,转换器类如何工作?它可能使直接转换而不使用ifs?谢谢 –
我改变了我的答案,因为它没有达到我的预期。如果你想避免一个大的if语句,上面应该可以工作 –
- 1. DynamoDB检索最后一行
- 2. 如何在检索一个值之后从列中检索值
- 3. Childadded检索一个键
- 4. 检索字典中最后一个键的值
- 5. 检索javascript中的最后一个键本地存储
- 6. 如何从数据库检索最后一个插入ID
- 7. 两个字典检索与一个关键检索的性能
- 8. 检索数组键
- 9. 如何检索Castle ActiveRecord中的最后一个插入ID?
- 10. 如何检索SQL Server中的最后一个标识?
- 11. 我们如何检索删除的最后一个单词
- 12. 如何从Oracle表中检索最后一天的数据?
- 13. 检索sql的最后一条记录
- 14. 没有检索数据库中的最后一个数据android
- 15. 如何从每个用户检索最后一行(按时间)
- 16. 如何在C#中使用XPath检索最后一个节点?
- 17. 如何从SQLite中检索最后一个_ID
- 18. 检索C中的最后一次启动时间标记
- 19. 如何检索一次twitter oauth标记?
- 20. 如何检索一个URL的引用次数
- 21. 如何使用JQuery加载在一次检索中检索两组数据
- 22. 关键检索
- 23. 检索ArrayListMultimap键
- 24. 检索由键
- 25. GAE - 检索最后一项(python)
- 26. 使用php检索数组中的最后一个值
- 27. 检索3个表中的数据如何从最后一个表使用Laravel
- 28. Python检查列表的第一个和最后一个索引
- 29. 在一个div中的foreach只是检索最后一个值
- 30. 如何从外键检索数据
您正在使用错误的事件。虚拟键到实际键入字符的映射高度依赖于活动键盘布局。改为使用KeyPress事件。 –