[英]C# Validating event: test for blank textbox and number validation?
因此,我试图创建一个验证事件,以确保文本框不为空并且输入的数字不超过2000。我已经发布了我所拥有的,但是每次运行它时,都会收到一条消息,指出异常未处理,因为“ kwh = decimal.Parse(khtextBox.Text)”输入的格式不正确。 我有它的方式,如果数量超过2000,则验证有效,但如果文本框为空白,则验证无效。 我究竟做错了什么? 编程也是新手,因此请像正在与3岁孩子聊天一样进行解释! 谢谢 :)
private void khtextBox1_Validating(object sender, CancelEventArgs e)
{
decimal kwh;
kwh = decimal.Parse(khtextBox1.Text);
bool blank = false;
if (blank)
{
MessageBox.Show("Please enter a valid number.");
}
if (kwh > 2000)
{
MessageBox.Show("Kilowatt-Hours cannot exceed 2000.");
e.Cancel = true;
}
}
尝试使用decimal.TryParse
方法,该方法尝试将string
转换为十进制,如果转换成功,则返回bool值,例如:
decimal kwh;
if (!decimal.TryParse(khtextBox1.Text, out kwh)) // check if the conversion has failed
{
MessageBox.Show("Please enter a valid number.");
e.Cancel = true;
}
else // conversion ok, you can use the kwh value
{
if (kwh > 2000)
{
MessageBox.Show("Kilowatt-Hours cannot exceed 2000.");
e.Cancel = true;
}
}
您清楚地提到了自己的问题所在。 输入必须是可以转换为十进制数字的值。
输入错误似乎是一个问题。 您可以尝试使用TryParse代替,还是可以简单地将第二个“ if”块更改为“ else if”。
decimal outputKWH;
kwh = decimal.TryParse(khtextBox.Text, out outputKWH)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.