低于所需数字时的文​​本框验证

Textbox validation when lower than the desired number

在我的文本框中,接受的值应该在 80 - 160 的范围内。当用户输入大于 160 的数字时没有问题。但是对于 80,当用户开始输入时,它会自动更改为 80因为 1 位整数小于 80。我应该采用什么方法?

private void tbox_Power_TextChanged(object sender, EventArgs e)
{
    TextBox tb = sender as TextBox;
    if (tb.Text != String.Empty && int.Parse(tb.Text) > 160)
        tb.Text = "160";
    else if (tb.Text != String.Empty && int.Parse(tb.Text) < 80)
        tb.Text = "80";
    else if (tb.Text == String.Empty)
        tb.Text = "0";
}

我能想到的最佳解决方案是让用户键入所需的数字,然后在片刻之后(比方说,5 秒)进行所需的处理。您可以使用 Timer 实例,将延迟设置为 5000 并将其设置为 LostFocus 事件处理程序。在 TimerTick 事件中你可以做任何你想做的处理。

您始终可以使用 NumericUpDown control 从用户那里获取数字输入。您可以设置 MinimumMaximum 值,并且不必进行任何解析。