自动在文本框上设置最小和最大值

5
我希望能使文本框在用户输入超过最大值时自动设置为最大值。例如,最小值为0,最大值为255。当用户在文本框中输入999时,它会自动设置为最大值255。当用户在文本框中输入-11时,它会自动设置为最小值0。您可以查看下面的gif动画以了解其工作原理。
我尝试过使用if else语句,但无法将字符串转换为int类型。

4
您可以使用 NumericUpDown,它是专门为此目的而制作的。 - jmcilhinney
2个回答

4

如果你想要这种功能,你需要在每个文本框上设置它。

它只是检查文本框的Text是否为数字,然后检查范围并应用适当的值。

yourtextbox.TextChanged+= (s, e) =>
{
    var textbox = s as TextBox;
    int value;
    if (int.TryParse(textbox.Text, out value))
    {
        if (value > 255)
            textbox.Text = "255";
        else if (value < 0)
            textbox.Text = "0";
    }
}

2
@dotctor 如果最小值是5,而你想输入15,你将无法做到,因为当你输入1时,验证将失败,你将无法输入5。 - vinsa

3
使用文本框的ontextchange事件。在事件中进行如下检查:
if (int.Parse(textBox.Text) > MAX_VALUE) {
    textBox.Text = MAX_VALUE;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接