窗户的形式.限制用户输入到一定范围内

本文关键字:输入 范围内 用户 窗户 | 更新日期: 2023-09-27 18:06:53

我正在为类创建一个windows窗体程序,我试图限制从1-1000的'权重'文本框的输入。我得到了用户输入解析为双精度,但由于某种原因,我创建的错误信息不会在正确的时间弹出。(只有当我输入超过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");
    }
}
}

窗户的形式.限制用户输入到一定范围内

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

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");
                }
            }
        }