自动判断TextBox和CmoboBox是否为空(遍历控件)
来源:互联网 发布:淘宝鹊桥佣金 编辑:程序博客网 时间:2024/05/21 19:54
当我们在每个窗体上每次都得判断每个控件是否为空的时候,是不是很抓狂?判断完一个就是下一个接着另一个,看着那一长串if...else让人眼晕!其实,在面向对象的范畴里,对于相同的或者类似的代码只要重复3次以上我们应该想到面向对象的三大特性之一:封装。
我们常用的输入数据的控件一般为TextBox和CmoboBox,在此我就以它们为例(需要用到控件的TabIndex属性和Tag属性,而Text属性代替Tag属性的话出现不了运行效果):
这个例子也不是一蹴而就的,大体经过三次转变:
函数代码
第一次: 代码比较长,而且遍历是从控件的TabIndex属性由大到小进行的,运行结果不如人意~
Public Shared Function IsEmptyText(ByVal Objs As Windows.Forms.Control.ControlCollection) As Boolean '声明一个Control类的实例 Dim objCon As Control '开始遍历Control类中的每一个控件 For Each objCon In Objs 'TypeOf 判断类型 If TypeOf (objCon) Is TextBox Then If objCon.Text = "" Then MsgBox(objCon.Tag.ToString + "不能为空", vbOKOnly + vbExclamation, "警告") objCon.Focus() Return False Exit Function End If '利用TypeOf查看控件的类型 ElseIf TypeOf (objCon) Is ComboBox Then If objCon.Text = "" Then MsgBox(objCon.Tag.ToString + "不能为空", vbOKOnly + vbExclamation, "警告") objCon.Focus() Return False Exit Function End If End If Next Return True End Function
第二次: 整合了第一次的分别判断
Public Shared Function IsEmptyText(ByVal Objs As Form) As Boolean For Each objCon As Control In Objs.Controls If (TypeOf objCon Is TextBox) Or (TypeOf objCon Is ComboBox) Then If objCon.Text.Trim = "" Then MsgBox(objCon.Tag + "不能为空!", vbOKOnly + vbInformation, "系统提示") objCon.Focus() Return False Exit For Else Return True End If End If Next End Function
第三次:优化第二次,解决了遍历的问题
Public Shared Function IsEmptyText(ByVal Objs As Form) As Boolean For i As Integer = Objs.Controls.Count - 1 To 0 Step -1 If (TypeOf Objs.Controls(i) Is TextBox) Or (TypeOf Objs.Controls(i) Is ComboBox) Then If Objs.Controls(i).Text.Trim = "" Then MsgBox(Objs.Controls(i).Tag + "不能为空!", vbOKOnly + vbInformation, "系统提示") Objs.Controls(i).Focus() Return False Exit For End If End If Next End Function
调用方法
'调用IsEmptyText()函数,验证窗体的控件是否为空 Dim strIsEmpty strIsEmpty = IsEmpty.IsEmptyText(Me) If strIsEmpty = True Then Exit Sub End If
运行效果
也许,代码还不完美,甚至即使有现成的也看不懂(重量级地查询控件-sp1234)。但在学习的过程中首先得有这种意识,并尝试去做,而不论是从别人那里吸取过来还是自己研究出来,然后慢慢的在以后的学习中对以前的知识会有更高、更深刻、更全面的认识。
- 自动判断TextBox和CmoboBox是否为空(遍历控件)
- 如何用foreach遍历页面上所有的TextBox,判断他们是否为空?
- 判断字符串和控件值是否为空
- 【机房系统知识小结点系列】之遍历窗体中的控件,判断Text是否为空?
- 非映射的形式检查TextBox,ComboBox控件的值是否为空(是否被选中)
- 遍历所有TextBox的Text为空(Winform和ASP.NET)
- TextBox判断是否为数字
- 判断DataSet和DataTable是否为空
- 判断数据库是否为空和总条数
- 判断是否为空
- 判断是否为空
- 判断是否为空
- each遍历所有input值判断是否为空
- 检查窗体中的textbox是否为空
- Winform 判断Combobox控件先择值是否为空
- JavaScript之如何判断对象是否为空和判断对象是否不为空
- 遍历页面上所有的TextBox控件并将其设置为空值
- loner_li 机试题 编程遍历所有的Textbox控件 ,设置其值为空
- overridePendingTransition在TabActivity里失效的解决办法
- Linux 0.12 OS. math - mul.c
- Java集合介绍1
- c++ 程序 有关移动文件
- cocos2d-x+Lua下getChildByTag返回不正确的解决方法
- 自动判断TextBox和CmoboBox是否为空(遍历控件)
- GCC/LD编译链接潜规则 (第一弹) : 当一个符号被多重定义时
- Reviewboard的中文乱码问题
- 使用Hibernate向mysql数据库中插入中文,数据库中显示??乱码
- 集群文件系统 moosefs 安装配置 容灾恢复
- IT职场求生法则(3)- 部门经理及副总适用法则
- uva10066 - The Twin Towers(dp,lcs)
- SpringMVC源码剖析(三)- DispatcherServlet的初始化流程
- sencha route实现浏览器及Android返回按钮页面返回