如果文本框为空,如何避免错误?

时间:2012-05-20 12:03:11

标签: c#

如果一个或两个文本框都为空,我正在寻找避免错误的解决方案?我已经测试过检查高度和宽度的值是否为null,但是我只能在代码之后执行,然后它会迟到!?帮助是精确的!谢谢!

// Get values from text boxes
int height = Convert.ToInt32(txtInputA.Text);
int width = Convert.ToInt32(txtInputB.Text);

3 个答案:

答案 0 :(得分:4)

由于您尝试将用户输入解析为整数,因此您需要检查的不仅仅是空字符串。如果输入包含非数字字符怎么办?如果数字太大怎么办?

验证所有这一切的最简单方法是通过Int32.TryParse,检查有效性在一次通话中执行转换(如果有效):

int height, width;
if (int.TryParse(txtInputA.Text, out height) == false)
    // Alert: invalid height.
if (int.TryParse(txtInputB.Text, out width) == false)
    // Alert: invalid width.

编辑:通过注释“警报”,我假设您将抛出一些异常,然后将其捕获(通过调用方法)并显示给用户。如果您要直接从上面的逻辑显示错误消息,请确保在转换失败后停止执行该方法(例如通过return语句)。

答案 1 :(得分:1)

你可以这样做:

  string aText = string.IsNullOrEmpty(txtInputA.Text)?"0":txtInputA.Text;
  int height = Convert.ToInt32(aText);

或者你可以这样做:

  int height = 0;
  int.TryParse(txtInputA.Text, out height);

答案 2 :(得分:-1)

以下是检查TextBox是否为空的方法:

int height;
int width;
if (!string.IsNullOrWhiteSpace(txtInputA.Text) & !string.IsNullOrWhiteSpace(txtInputB.Text))
{
    // Get values from text boxes
    height = Convert.ToInt32(txtInputA.Text);
    width = Convert.ToInt32(txtInputB.Text);
}
else
{
    MessageBox.Show("Please Enter Height and Width!");
}