c# - 如何检查所有文本框是否已填充?
问题描述
我创建了一个带有多个面板的表单,并使用面板控件来显示相关信息。第三个面板有 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 = " ";
}
但没有任何效果。请帮助我克服这个问题。提前致谢。
解决方案
我测试了您的代码,它输入了哔哔声,请考虑 Ahmed 关于文本框位于另一个容器或表单中的评论。
与您的问题没有直接关系,但是据我所知,何时启用按钮的逻辑不正确,因为只有一个不为空的文本框足以使按钮保存到数据库,我假设您想要所有文本框都不是空的。
如果是这样的话,我会建议这样的事情:
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,并且无论是否出现更多空文本框都会保持这种状态,然后您使用该标志来启用/禁用按钮。
推荐阅读
- hadoop - awk 命令组合多个参数
- javascript - 显示一个问题和每个问题的一组答案(JS 测验)
- javascript - React app Heroku build failed - git push heroku master - Expecting X, Parse error on line 1:得到意外的输入结束。哪个文件的第 1 行?
- c - 指针算术的区别 (&x[5]-x)
- mongodb - MongoDB create unique field but not indexed?
- c++ - 在 Armadillo C++ 中选择所有切片的行和列
- pyspark - PySpark 使用分组平均值填充缺失/错误值
- java - 无法在项目 SpringData 上执行目标 org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (default-cli)
- database - Google App Maker - 如何绑定到查询数据源上的关系?
- python - 如何从 PISA 接口列表中制作 pandas DataFrame