检查是否有文本框包含数据,然后执行某些操作

时间:2018-09-15 15:18:47

标签: c# .net winforms

一个groupbox使用Textbox从数据库中绑定了多个ExecuteReader 现在我要做的是,如果只有一个textbox不为空,那么将所有Textbox设为只读

ExecuteReader返回的数据不像ExecuteNonQuery那样,它返回检索到的行数,所以我无法获得任何好处

还有其他建议吗?

4 个答案:

答案 0 :(得分:4)

您可以使用LINQ做到这一点:

var textBoxes = groupbox.Controls.OfType<TextBox>();

if (textBoxes.Any(tb => !string.IsNullOrEmpty(tb.Text)))
{
    foreach (var t in textBoxes)
    {
        t.ReadOnly = true;
    }
}

答案 1 :(得分:0)

尝试:

 if (String.IsNullOrEmpty(textBox1.Text))
 {
    // Do something...
 }

答案 2 :(得分:0)

快速而肮脏的答案:枚举组框中的控件,测试它们是否为编辑,如果是,请检查编辑中是否有任何文本。

cancel()

答案 3 :(得分:0)

您可以像这样(使用Linq)遍历文本框:

foreach (Control c in groupBox1.Controls)
  if (c is TextBox)
    if (((TextBox)c).Text.Length>0)
      {        
        // there is one textbox with text
        // .. do something, like disabling textboxes ..
        break;
      }