如何检测当单击保存按钮时所有文本框是否为空



我有一个关于windows窗体上有30个文本框的问题。我正在测试应用程序。

所有文本框都有验证事件,用于输入,按键和离开事件。

但问题是当打开页面并直接按下按钮时,它会保存文本框而没有警告。

如何处理所有文本框为空的情况,而不检查每个文本框条件像

if(String.isNotNullorEpty(textbox1.Text)&&...)

谢谢。

您可以简单地遍历所有文本框控件并检查其中是否有文本。如果30个中只有1个有文本,则条件为假。

bool allEmpty = true;
foreach (Control c in Controls)
{   
if(c is TextBox tb && !String.IsNullOrEmpty(tb.Text))
{
allEmpty = false;
break;
}   
}   

使用linq:

bool allEmpty = parentControl.Controls.OfType<TextBox>().All(tb => tb.Text == "");

设置你的'parentControl'。

不需要选中所有的文本框或任何其他循环。

保持您的save changes button禁用。您已经为每个文本框都设置了事件,只需添加此事件以在文本更改时启用save changes button。这样就不可能在窗体打开后立即保存更改

此方法的另一个优点是,当用户关闭表单时,您可以检查是否有任何未保存的更改,并询问他是否要在关闭之前保存它们。

最新更新