C# WPF 快速开发18封装数据验证逻辑

本文介绍了一种在程序中高效处理表单验证的方法,通过封装重复的非空检查逻辑,减少代码冗余并提高开发效率。针对文本框和下拉框等控件,实现了统一的数据验证流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进行填表工作的时候,很多地方不允许为空,如果要在程序中一个个控件都来判断有没有填写数据,代码量太多。

下面注释的代码表示为处理过的代码,而且只列出了几个控件代码。代码由传智播客杨老师编写。

boolisOK=true;//数据检验是否通过

////判断非空字段不能为空

//if(txtName.Text.Length<=0)

//{

//isOK=false;//投票只能投反对票

//txtName.Background=Brushes.Red;//背景变成红色

//}

//else

//{

////发现有问题¬则投反对票isOK=false;

////发现自己没问题¬也不能isOK=true;

//txtName.Background=null;//背景变成默认颜色

//}

//if(txtNational.Text.Length<=0)

//{

//isOK=false;

//txtNational.Background=Brushes.Red;//背景变成红色

//}

//else

//{

//txtNational.Background=null;

//}

////如果SelectedIndex<0则表示没有选中任何项

//if(cbDepatment.SelectedIndex<0)

//{

//isOK=false;

////combobox变红要这样搞

//cbDepatment.Effect=

//newDropShadowEffect(){Color=Colors.Red};

//}

//else

//{

//cbDepatment.Effect=null;

//}

下面进行封装处理

//ref,out

privatevoidCheckTextboxNotEmpty(refboolisOK,

paramsTextBox[]textboxes)

{

foreach(TextBoxtxtBoxintextboxes)

{

if(txtBox.Text.Length<=0)

{

isOK=false;

txtBox.Background=Brushes.Red;

}

else

{

txtBox.Background=null;

}

}

}

privatevoidCheckComboBoxNotEmpty(refboolisOK,

paramsComboBox[]cmbs)

{

foreach(ComboBoxcmbincmbs)

{

if(cmb.SelectedIndex<0)

{

isOK=false;

cmb.Effect=newDropShadowEffect{Color=Colors.Red};

}

else

{

cmb.Effect=null;

}

}

}

privatevoidtxtSave_Click(objectsender,RoutedEventArgse)

{

boolisOK=true;

CheckTextboxNotEmpty(refisOK,txtName,txtNational,txtNativeAddr,txtAddr,

txtBaseSalary,txtTelNum,txtIdNum,txtPosition,txtNumber);

CheckComboBoxNotEmpty(refisOK,cbGender,cbMarriage,

cbPartyStatus,cbEducation,cbDepatment);

……

}

我也还不知道ref是什么变量,先特殊地方跟着用就好吧。作者杨老师说还有一种更牛逼的方法,叫反射来着。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值