e.Key
我想要由WPFKeyDown
事件的属性传递的 ASCII 字符。
Malcolm
问问题
13516 次
4 回答
5
您可以使用 TextInput 事件而不是 KeyDown 吗?TextCompositionEventArgs 类允许您直接检索通过 e.text 属性输入的文本
private void UserControl_TextInput(
object sender,
System.Windows.Input.TextCompositionEventArgs e)
{
var t = e.Text;
}
于 2020-03-24T10:03:55.610 回答
4
不幸的是,没有简单的方法可以做到这一点。有 2 种解决方法,但它们在某些情况下都会失败。
第一个是将其转换为字符串:
TestLabel.Content = e.Key.ToString();
这将为您提供 CapsLock 和 Shift 等内容,但是,对于字母数字键,当时它无法告诉您 shift 等的状态,因此您必须弄清楚这一点你自己。
第二种选择是使用 TextInput 事件,其中 e.Text 将包含实际输入的文本。这将为您提供字母数字键的正确字符,但不会为您提供控制字符。
于 2009-01-28T09:05:57.367 回答
3
从您的简洁问题来看,我假设您需要一种方法来获取按下的键的 ASCII 值。这应该工作
private void txtAttrName_KeyDown(object sender, KeyEventArgs e)
{
Console.WriteLine(e.Key.ToString());
char parsedCharacter = ' ';
if (Char.TryParse(e.Key.ToString(), out parsedCharacter))
{
Console.WriteLine((int) parsedCharacter);
}
}
例如,如果您按 Ctrl + S,您会看到以下输出。
LeftCtrl
S
83
于 2009-01-28T09:40:28.903 回答
-4
System.Enum.ToObject(e.Key.GetType(), (byte)e.Key).ToString();
于 2011-03-24T21:52:56.200 回答