C# - 在文本框中限制输入的值介于0.0到1.0之间

问题描述 投票:-1回答:4

我是C#和WPF的新手。我的WPF应用程序中有一个文本框,我想限制用户在文本框中输入的值介于0.0和1.0之间。我怎么做?

任何帮助都会非常有帮助。

c# wpf textbox
4个回答
2
投票

这样的东西可能适合你,因为你也会得到价值:

double valueEntered;
if (!double.TryParse(textBoxName.Text, out valueEntered)
    // value is not a valid double
    return;
else
    if (valueEntered < 0 || valueEntered > 1)
        // value is valid
        return;
    else
        // value is not valid
        return;

为了更好的实现,您应该向我们展示XAML和Window的代码隐藏。


1
投票

如果你关注MVVM,你可以在属性的帮助下做同样的事情

private double  _MyLimittedValue;
public double  MyLimittedValue
  {
    get { return _MyLimittedValue; }
    set {
          if (value < 0.0 || value > 1.0) { value = 0.0; } 
          _MyLimittedValue = value; 
        }
  }

然后用MyLimittedValueText绑定到文本框的"mode=TwoWay,updatesourcetrigger=propertychanged"

因此,如果您输入任何其他值,文本框中的文本将变为0.0


0
投票

这可能对你有所帮助

private void TexBoxName_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
    var patten = @"^(0(\.\d*)?|1(\.0*)?)$";
    Regex regex = new Regex(patten);
    e.Handled = !regex.IsMatch(e.Text);
}

0
投票

当您使用范围时。尝试使用RangeBase变种viz; ScrollBar,ProgressBar和Slider。

在您的情况下,滑块是自然的选择,并将是最好的。

© www.soinside.com 2019 - 2024. All rights reserved.