我正在使用OpenTK窗口,我正在尝试为GUI创建一个手工制作的文本框。
我遇到的问题是获得正确的键盘输入。
例如,当用户键入 Shift + 1 时,文本字段中显示的字符是感叹号。
问题是,使用输入库只需给我原始按键。即,按 Shift + 1 会给出一个按下shift的事件,以及一个按下1的事件。
我想知道是否有办法将这些印刷机转换成适当的字符,以便他们可以使用键盘上可用的任何特殊字符。
如果此功能不可用 - 最好的方法是在与修饰符一起使用时对相应的键进行硬编码吗?
编辑:我将我使用的事件从KeyDown更改为KeyPress - 它提供了一个正确处理修改器的不同事件。谢谢你的帮助!
答案 0 :(得分:1)
使用您的控件的 keypress EventHandler 然后
if(e.keychar==(char)keys.[specified key])do some work
e 是按键事件处理程序功能的参数