一个groupbox
使用Textbox
从数据库中绑定了多个ExecuteReader
现在我要做的是,如果只有一个textbox
不为空,那么将所有Textbox
设为只读
ExecuteReader
返回的数据不像ExecuteNonQuery
那样,它返回检索到的行数,所以我无法获得任何好处
还有其他建议吗?
答案 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;
}