窗户的形式.限制用户输入到一定范围内
本文关键字:输入 范围内 用户 窗户 | 更新日期: 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");
}
}
}