C# 用C语言中的通用代码验证空文本框、NumericUpdown和ComboBox#

C# 用C语言中的通用代码验证空文本框、NumericUpdown和ComboBox#,c#,winforms,validation,combobox,textbox,C#,Winforms,Validation,Combobox,Textbox,我有大约10张这样的表格,如下截图。 在将数据插入数据库之前,我必须重置它们并验证它们是否为空 重置代码: void ClearAllText(控制图标) { foreach(控制中的控制字段) { 如果(字段为文本框) ((文本框)字段)。清除(); else if(字段为组合框) ((组合框)字段)。Text=“选择”; if(字段为DataGridView) ((DataGridView)字段).Rows.Clear();/.Clear(); else if(字段为RichTextBox

我有大约10张这样的表格,如下截图

将数据插入
数据库之前,我必须
重置它们并验证它们是否为空

重置代码:

void ClearAllText(控制图标)
{
foreach(控制中的控制字段)
{
如果(字段为文本框)
((文本框)字段)。清除();
else if(字段为组合框)
((组合框)字段)。Text=“选择”;
if(字段为DataGridView)
((DataGridView)字段).Rows.Clear();/.Clear();
else if(字段为RichTextBox)
((RichTextBox)字段)。清除();
else if(字段为NumericUpDown)
((NumericUpDown)字段)。值=0;
其他的
明文(字段);
}
}
私有无效操作\u重置\u单击(对象发送方,事件参数e)
{
明文(本);
}
上面的代码运行得非常好。但当我尝试验证时,它无法正常工作

private void action\u Insert\u单击(对象发送方,事件参数e)
{
foreach(控制面板6中的控制c.控制)
{
如果(c是文本框)
{
如果(c.Text.Equals(“”)
{
显示(“某些值为空或不正确…”,“错误消息”,
MessageBoxButtons.OK,MessageBoxIcon.Error);
打破
}
}
}
}

到目前为止,我只尝试了
TextBox
,我还必须验证
NumericUpDown
combox

由于控件没有默认的重置或空验证界面,您必须手动实现逻辑。至少重构代码可以在更多地方重用它

private void action\u Insert\u单击(对象发送方,事件参数e)
{
//验证
if(Controls.OfType().Any(x=>!IsEmpty(x)))
{
MessageBox.Show(“某些值为空或不正确…”、“错误消息”、MessageBoxButtons.OK、MessageBoxIcon.Error);
返回;
}
//插入语句
}
私有无效操作\u重置\u单击(对象发送方,事件参数e)
{
明文(本);
}
无效ClearAllText(控制图标)
{
foreach(控制中的控制c)清除(c);
}
私有布尔值为空(控制)
{
如果(控件为文本框txt)
返回txt.Text==string.Empty;
if(控件为组合框cmb)
返回cmb.Text==“选择”;
if(控件为DataGridView dgv)
返回dgv.DataSource==null;
如果(控件为RichTextBox rtb)
返回rtb.Text==string.Empty;
如果(控件为NumericUpDown nud)
返回numd.Value==0;
返回true;
}
私人空间清理(控制)
{
如果(控件为文本框txt)
txt.Clear();
else if(控件为组合框cmb)
cmb.Text=“选择”;
else if(控件为DataGridView dgv)
dgv.DataSource=null;
else if(控件为RichTextBox rtb)
rtb.Clear();
else if(控件为NumericUpDown nud)
数值=0;
}

找到第一个
文本框
时,为什么要
中断
?因为我不希望MessageBox出现多次。就它显示的错误而言,它的工作已经完成。您可能需要查看