我试图通过计算输入是字母还是数字来将用户输入分解为DataGrid上的KeyDown事件。这是我到目前为止使用的方法;
private void OnDataGridKeyDown(object sender, KeyEventArgs e)
{
if (char.IsLetter(Convert.ToChar(e.Key)))
{
MessageBox.Show("Letter");
}
if (char.IsDigit(Convert.ToChar(e.Key)))
{
MessageBox.Show("Number");
}
}
然而,这表现得很棒。首先,IsDigit从未发生过,显然无法正常工作。其次,IsLetter可以工作,但仅限于某些字母(W,Z,X,V和Y)。必须有更全面的方法来做到这一点,因为这显然不适合我。
答案 0 :(得分:1)
您期望在key.toChar()
和char
之间存在差异。你可以在这里阅读转换,但这并不简单:
how to capture the '#' character on different locale keyboards in WPF/C#?