textbox空验证

时间:2011-06-09 18:32:35

标签: c#

如果用户没有在文本框中输入任何内容,我正在尝试验证表单中的文本框没有空字符串,因此如果文本框为空,则用户必须输入值,我的代码是这样的,但它无法正常工作

  public int TextBox_Validation(string sender)
  {


      try
      {

          if (string.IsNullOrEmpty(sender))
          {
              MessageBox.Show("Please enter a value");
          }

      }
      catch
      {
          int num = int.Parse(sender);
          return 0;

      }
      return 0;
  }

6 个答案:

答案 0 :(得分:2)

发件人通常只指发送对象,因此请检查您是否正在发送文本框的文本而不是文本框的引用。

此外,您总是返回零。将您的代码更改为以下内容。如果验证通过,您将返回1,如果失败则返回0。顺便说一下,您应该使用boolean而不是int。我在下面注释了一行,因为在这种情况下它没有做任何有建设性的事情:

try
{
    if (string.IsNullOrEmpty(sender))
    {
        MessageBox.Show("Please enter a value");
        return 0;
    }
}
catch
{
    //int num = int.Parse(sender);
    return 0;
}
return 1;

我建议您将方法更改为以下内容。您不需要try {} catch {},因为isNullOrEmpty涵盖了唯一的潜在空问题:

bool ValidateText(string Text)
{
    if (string.IsNullOrEmpty(Text))
    {
        MessageBox.Show("Please enter a value");
        return false;
    }
    return true;
}

答案 1 :(得分:1)

public bool TextBox_Validation(string sender) {
        return !string.IsNullOrEmpty(sender);
}

        if(TextBox_Validation(textbox1.Value)) {
             //OK
         } else { 
            MessageBox.Show("Please enter a value");
             //ETC
        }

答案 2 :(得分:1)

你没有抛出异常,所以你不会进入catch块。

public int TextBox_Validation(string value)
{
    int integer = 0;

    if( string.IsNullOrEmpty( value ) )
    {
        MessageBox.Show( "Please enter a value" );    
    }
    else
    {
        int.TryParse( value, out integer );
    }

    return integer;
}

答案 3 :(得分:1)

try-catch块没用,方法应该返回bool并且不应该显示任何消息。在一个方法中没有相关的东西(显示消息,返回一些无意义的数字等)是一种不好的做法。如果它是验证方法,它应该只告诉你一件事 - 传递的字符串是否有效(在你的情况下只是一个bool),这就是全部。您应该考虑在另一种方法中向用户显示消息。还有一件事 - 取决于您使用的技术,它可能有更好的验证支持(WF中的验证,WPF中的验证规则等),使用它们,而不是处理一些输入事件

答案 4 :(得分:1)

你的算法不正确。 catch块用于捕获先前try块中发生的错误。在这种情况下,我没有看到发生运行时错误因此可能不需要try / catch块,但我会留下例如缘故。此外,您的函数不提供程序知道它是否为空的方法。如果为空则可以返回0,否则返回1。或者返回布尔值true或false。也许像这样的函数会更好:

  public bool TextBox_Validation(string sender)
  {
      try
      {

          if (string.IsNullOrEmpty(sender))
          {
              MessageBox.Show("Please enter a value");
              return false;
          }
          else
              return true;

      }
      catch(Exception ex)
      {
          MessageBox.Show(ex.Message);
          return false;
      }
  }

答案 5 :(得分:1)

您可以尝试这样的事情

if (String.IsNullOrEmpty(txtTextBox.Text))
    {
        MessageBox.Show("Enter Value Please.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);           
    }
    else
    {
//whatever u need to do
    }