如何检查所有文本框是不是已填充? [复制]
Posted
技术标签:
【中文标题】如何检查所有文本框是不是已填充? [复制]【英文标题】:How to check all the Text boxes are filled? [duplicate]如何检查所有文本框是否已填充? [复制] 【发布时间】: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
进行检查。
是的,它奏效了。当我调用子容器时。谢谢。
【参考方案1】:
我测试了你的代码,它可以很好地输入哔哔声,考虑一下 Ahmed 的关于文本框在另一个容器或表单中的 cmets。
与您的问题没有直接关系,但是据我所知,何时启用按钮的逻辑是不正确的,因为只有一个不为空的文本框就足以使按钮保存到数据库,我假设您希望所有文本框都不为空。
如果是这样的话,我会建议这样的事情:
private void Calculatebutton_Click(object sender, EventArgs e)
var isThereEmptyTextBox = false;
foreach(Control c in Controls)
if(c is TextBox)
Console.Beep();
if (!String.IsNullOrWhiteSpace(textbox.Text) &&
!String.IsNullOrEmpty(textbox.Text))
isThereEmptyTextBox = true;
SaveToDatabaseButton.Enabled = !isThereEmptyTextBox;
只要一个文本框为空,该标志就会设置为 true,并且无论是否出现更多空文本框都将保持这种状态,然后您使用该标志来启用/禁用按钮。
【讨论】:
当我直接调用子容器时,代码运行良好。以上是关于如何检查所有文本框是不是已填充? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
通过消除除 seacrhed 行之外的所有其他行,通过文本框在已填充的列表视图中搜索
jQuery 脚本在文本框中显示 NaN,如何删除 NaN? [复制]