gpt4 book ai didi

c# - 将 Windows 窗体键转换为字符串

转载 作者:行者123 更新时间:2023-11-30 16:09:36 26 4
gpt4 key购买 nike

我正在响应我的 Windows 窗体应用程序中的 KeyDown 事件处理程序。在此事件处理程序中,我想转换 KeyEventArgs KeyCode 为字符串。当我们处理字母表、数字或数字键盘中的字符时,这没有问题。尝试转换字符时会遇到困难,例如:< > , . ; ' " / ?

我目前的转换方式是:

private string ConvertKeyCodeToString(System.Windows.Forms.Keys keyCode, bool shiftPressed)
{
string key = new System.Windows.Forms.KeysConverter().ConvertToString(keyCode);

if (key.Contains("NumPad"))
{
key = key.Replace("NumPad", "");
}

if (key.Equals("Space"))
{
key = " ";
}

if (!shiftPressed)
{
key = key.ToLower();
}

return key;
}

现在,我正在调用 ConvertToString而不是 ConvertToInvariantString因为这样做似乎并没有改变任何东西。我注意到每个引起问题的特殊字符似乎都以 "oem" 开头.

对我来说,最好的解决方案似乎是使用某种列表将 key 转换为字符串。如果按下的键当然是特殊字符。恐怕这会导致与键盘文化相关的问题。

所以我的问题是:如何根据当前区域性将特殊字符上的按键转换为它的字符串表示形式?

最佳答案

听起来您可能想使用 KeyPress 而不是 KeyDown:

private void keypressed(Object o, KeyPressEventArgs e)
{
char key = e.KeyChar; // the character representation of the key that was pressed
}

KeyDown 为非字符键(例如方向键和功能键)引发。

关于c# - 将 Windows 窗体键转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27361079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com