从按下的键中获取准确的字符

Getting the accurate character from keys pressed

我正在使用 OpenTK window,我正在尝试为 GUI 创建一个手工制作的文本框。

我 运行 遇到的问题是获得正确的键盘输入。

例如,当用户键入 Shift + 1 时,出现在文本字段中的字符是感叹号。

问题是,使用输入库只会给我原始按键。即,按 Shift + 1 会给您一个按下 shift 的事件,以及一个按下 1 的事件。

我想知道是否有办法将这些按键转换为适当的字符,以便他们可以使用键盘上可用的任何特殊字符。

如果此功能不可用 - 最好的方法是在修饰符与它们一起使用时对适当的键进行硬编码吗?


编辑: 我将我使用的事件从 KeyDown 更改为 KeyPress - 它提供了一个可以正确处理修饰符的不同事件。感谢大家的帮助!

使用 keypress EventHandler 你的控件 然后

if(e.keychar==(char)keys.[specified key])do some work

e 是按键事件处理函数的参数