如何使用文本框编写用户密钥输入? (WPF,C#)

时间:2015-02-14 22:55:55

标签: c# wpf xaml

基本上,我正在尝试在TextBox中写入与用户输入相对应的键。问题是按下的键也会输入

XAML代码:

<TextBox
    Name="TextBox1"
    PreviewKeyDown="OnTextBoxOneKeyDown">
</TextBox>

xaml.cs代码:

private void OnTextBoxOneKeyDown(object sender, KeyEventArgs e)
{
    TextBox1.Text = e.Key.ToString();
}

不幸的是,如果我输入字母's',在textBox中,它将写成'sS'而不是'S'。如果我输入'a',它将被写成'aA'而不是'A'。我需要keyDown事件的原因是,如果用户按下'Space','shift',来自小键盘的数字等,我想在textBox中写入。

谢谢

1 个答案:

答案 0 :(得分:0)

由于PreviewKeyDownKeyDown都被调用,因此会出现此类行为。您只需要通过设置e.Handled = true

告诉您不需要进一步处理它
private void OnTextBoxOneKeyDown(object sender, KeyEventArgs e)
{
    TextBox1.Text = e.Key.ToString();
    e.Handled = true;
}