如何禁止用户输入字符串或负数

时间:2016-05-02 11:44:54

标签: c#

我尝试以这种方式执行一个函数,但是一旦它显示MessageBox,它就会跳转到GUI并用最后一句说错误的消息。

if (!(double.TryParse(Waisttb.Text, out waist) && double.TryParse(Heighttb.Text, out height))) {
    MessageBox.Show("Please enter a valid number!");
}
//no negative numbers
if (waist < 0 || height < 0) {
    MessageBox.Show("Please enter a valid number!");
} 
else {
    //change to doubles
    waist = double.Parse(Waisttb.Text);
}

1 个答案:

答案 0 :(得分:2)

您必须重新排序逻辑。此外,重新解析已经解析的值没有用处。

if (!(double.TryParse(Waisttb.Text, out waist) && double.TryParse(Heighttb.Text, out height)))
{
    // input is not a valid number
    MessageBox.Show("Please enter a vailable number!");
}
else if (waist < 0 || height < 0)
{
    // numbers are valid, but negative
    MessageBox.Show("Please enter a vailable number!");
} 
else
{
    // numbers are valid and positive. use them here
}