C# WPF如何在文本框中仅使用数字值

37 浏览
0 Comments

C# WPF如何在文本框中仅使用数字值

这个问题已经有答案了:

如何在WPF中使文本框只接受数字输入?

我正在使用一个WPF应用程序,我希望文本框中只能输入数字。在WindowsForm应用程序中,我知道该怎么做。

不幸的是,在WPF中没有KeyPress事件,并且“code”也不再起作用。

正确的方法是什么,还有哪个事件?


在这里,您可以看到在Windows Form中工作的旧代码:

private void tbKreisdurchmesser_KeyPress(object sender, KeyEventArgs e)
{
    if (char.IsNumber(e.Key) || e.KeyChar==".")
    {
    }
    else
    {
        e.Handled = e.KeyChar != (char)Keys.Back;
    }
}

admin 更改状态以发布 2023年5月24日
0
0 Comments

您可以为文本框添加预览文本输入事件,并使用正则表达式在该事件中验证值,

private void TextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
    var textBox = sender as TextBox;
    e.Handled = Regex.IsMatch(e.Text, "[^0-9]+");
}

0