【发布时间】:2020-07-27 12:30:28
【问题描述】:
我创建了一个带有多个面板的表单,并使用面板控件来显示相关信息。第三个面板有 20 个文本框,我想检查是否填写了所有详细信息。所以我只是在下面使用了这段代码。
private void Calculatebutton_Click(object sender, EventArgs e)
{
foreach(Control c in Controls)
{
if(c is TextBox)
{
Console.Beep();
if (!String.IsNullOrWhiteSpace(textbox.Text) &&
!String.IsNullOrEmpty(textbox.Text))
{
SaveToDatabaseButton.Enabled = true;
}
}
}
}
问题是 if 语句中的条件变得错误,我听不到任何哔声或启用其他按钮。如果我从“c is TextBox”更改为“c is Panel”,我可以听到三声哔哔声。我也试过这样的代码
if(c is TextBox)
{
c.Text = " ";
}
但是没有任何效果。请帮助我克服这个问题。提前致谢。
【问题讨论】:
-
请注意,这里的
Controls表示this.Controls,它仅返回直接放置在表单上的控件。不包括放置在子容器(如 Panel 或 GroupBox)中的任何控件。检查链接的问题,了解如何迭代所有控件。 -
请尝试在您的文本上调用
.Trim方法,然后再使用String.IsNullOrEmpty进行检查。 -
是的,它奏效了。当我调用子容器时。谢谢。