【机房收费系统重构版】一键检查、清空控件text属性
2016-03-20 21:26
302 查看
【前言】
在米总的要求下,我们组开始了对VB版机房的升级重构,升级后功能基本不变,但是要求使用七层架构高度解耦能够灵活更换数据库,使用VB.net语言。在重构的过程中发现老版的VB机房系统中有很多的if textbox =”” then , if textbox=”” then。 我一看,这是典型的代码坏味道呀。有没有什么办法能够很轻松的把窗体中的控件遍历了呢?于是就有了这篇博客。
Typeof 函数 Typeof(textbox) 获取textbox的控件类型
编码的思路就是检测窗体中的每一个控件是否为空,或者判断控件类型执行相应操作
清空窗体中所有的text
在米总的要求下,我们组开始了对VB版机房的升级重构,升级后功能基本不变,但是要求使用七层架构高度解耦能够灵活更换数据库,使用VB.net语言。在重构的过程中发现老版的VB机房系统中有很多的if textbox =”” then , if textbox=”” then。 我一看,这是典型的代码坏味道呀。有没有什么办法能够很轻松的把窗体中的控件遍历了呢?于是就有了这篇博客。
【正文】
【原理】
System.Windows.Forms.Control 类 代表任意控件Typeof 函数 Typeof(textbox) 获取textbox的控件类型
编码的思路就是检测窗体中的每一个控件是否为空,或者判断控件类型执行相应操作
【代码】
检测是否所有text框不为空<span style="font-size:24px;">Public Class CheckTXTExist Dim ex As New Exception Public Sub CheckTxtExist(ByVal form As Windows.Forms.Form) 'form为参数 Dim ct As Control ' 定义ct为控件类 For Each ct In form.Controls ' 循环窗体中的控件 If (TypeOf ct Is TextBox) Then '如果控件为textbox If ct.Text = "" Then '如果该textbox.text="" 就抛出一个异常 Throw ex Exit Sub End If End If If (TypeOf ct Is ComboBox) Then ' 如果控件为combobox 且text 属性为空则抛出一个异常 If ct.Text = "" Then Throw ex Exit Sub End If End If Next End Sub End Class</span>窗体中调用:
<span style="font-size:24px;"> Dim check As New CheckTXTExist Try<span style="white-space:pre"> '利用异常处理程序抓捕由于控件text属性为空导致的程序异常。</span> check.CheckTxtExist(Me) Catch ex As Exception MsgBox("请将信息补充完整") Exit Sub End Try</span>
清空窗体中所有的text
Public Class DeleteControlTXT Public Sub DeleteControlTXT(ByVal form As Windows.Forms.Form) 'form为参数 Dim ct As Control ' 定义ct为控件类 For Each ct In form.Controls ' 循环窗体中的控件 If (TypeOf ct Is TextBox) Then '如果控件为textbox 则清空text 属性 ct.Text = "" End If If (TypeOf ct Is ComboBox) Then ' 如果控件为combobox 则清空text属性 ct.Text = "" End If Next End Sub End Class
【总结】
不将就,你就有收获;不思考,你就会错过。聪明的你,更喜欢怎么做呢?相关文章推荐
- Redis内存使用优化与存储
- iOS ARC下的cycle retain
- C/C++学习之路
- 基础练习 十六进制转八进制
- CentOS7(mini) 急速部署ASP.NET应用
- 2.5-调整cpu内存、网卡
- 二叉树的模板类实现
- EasyUI-可编辑的表格
- 《NumPy Beginner's Guide》笔记Chapter3_Part2
- ajax的经典面试题以及答案
- [leetcode] 231. Power of Two
- 微信公众平台开发(一) 配置接口
- 刚刚来到深圳,新的旅程马上就要开始了~
- 基础练习 数列排序
- mysql_5.6.24_winx64 安装
- 【BZOJ2243】【codevs1566】染色,树链剖分练习
- 2016年第七届蓝桥杯省赛A组试题
- 《NumPy Beginner's Guide》笔记Chapter3_Part1
- ERROR ITMS-90046: "Invalid Code Signing Entitlements. 苹果提交App Store的问题
- ERROR ITMS-90046: "Invalid Code Signing Entitlements. 苹果提交App Store的问题