【问题标题】:C# WPF How to use only numeric value in a textbox [duplicate]C#WPF如何在文本框中仅使用数值[重复]
【发布时间】:2017-02-27 08:02:03
【问题描述】:

我使用 WPF 应用程序,我想在文本框中只允许数字。在 WindowsForm 应用程序中,我会知道如何制作它。
不幸的是,WPF 中没有 KeyPress,并且“代码”也不再起作用。

如何正确,事件是什么?


在这里你可以看到在 Windows 窗体中运行的旧代码:

private void tbKreisdurchmesser_KeyPress(object sender, KeyEventArgs e)
{
    if (char.IsNumber(e.Key) || e.KeyChar==".")
    {

    }
    else
    {
        e.Handled = e.KeyChar != (char)Keys.Back;
    }
}

【问题讨论】:

  • 尝试按下预览键
  • 您可以简单地将文本绑定到视图模型中的数字类型(例如double)。
  • 在绑定到数字类型时,您需要将属性、TwoWay 模式和 UpdateSourceTrigger 指定为 PropertyChanged,然后在您的设置器中调用 OnPropertyChanged。这也很酷,因为当字段无效时,它会为您在文本字段上着色。

标签: c# wpf events numeric


【解决方案1】:

您可以为文本框添加 Previewtextinput 事件并使用正则表达式验证该事件中的值,

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

【讨论】:

猜你喜欢
  • 2013-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多