Windows窗体。将用户输入限制在特定范围内

时间:2016-09-12 19:15:49

标签: c#

我正在为类创建一个Windows窗体程序,我试图限制来自1-1000的'权重'文本框的输入。我得到了用户输入来解析为double,但某些原因我创建的错误消息不会按预期在正确的时间弹出。 (只有输入数字超过5位数时才会弹出错误信息...所以我可以输入2222或10000而不会出错)

private void Weight_KeyPress(object sender, KeyPressEventArgs e)
{
var sourceValue = Weight.Text;
double doubleValue;
if (double.TryParse(sourceValue, out doubleValue))
{
    if (doubleValue > 1000 )
    {
        MessageBox.Show("Cannot be greater than 1000");
    }
}
}

1 个答案:

答案 0 :(得分:0)

而不是使用KeyPress,你应该使用TextChanged事件 因为如果你使用keypress,新的char还不是控制文本的一部分。

private void inputTextBox_TextChanged(object sender, EventArgs e)
        {
            var inputTextBox = sender as TextBox;
            var sourceValue = inputTextBox.Text;
            double doubleValue;
            if (double.TryParse(sourceValue, out doubleValue))
            {
                if (doubleValue > 1000)
                {
                    MessageBox.Show("Cannot be greater than 1000");
                }
            }
        }