我正在为类创建一个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");
}
}
}
答案 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");
}
}
}