【问题标题】:How can I use textbox to write the user key input? (WPF, C#)如何使用文本框编写用户键输入? (WPF,C#)
【发布时间】:2015-02-15 08:15:23
【问题描述】:

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

XAML 代码:

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

xaml.cs 代码:

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

不幸的是,例如,如果我在文本框中键入字母“s”,它将被写为“sS”而不仅仅是“S”。如果我输入'a',它将被写成'aA'而不是'A'。我需要 keyDown 事件的原因是,如果用户按下“空格”、“移位”、数字键盘中的数字等,我想在文本框中写入。

谢谢

【问题讨论】:

  • 如果用户按下“空格”等,请解释你想在文本框中写什么
  • 对不起,误会了,如果用户按空格键,它会写成'空格',就像方法e.Key.ToString正常返回一样,但问题是它也会添加字符空间。例如“空间”与“空间”。

标签: c# wpf xaml


【解决方案1】:

你会得到这样的行为,因为 PreviewKeyDownKeyDown 都被调用了。您只需要通过设置e.Handled = true来告诉您不需要进一步处理它

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

【讨论】:

    猜你喜欢
    • 2020-05-21
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多