【机房收费系统重构版】一键检查、清空控件text属性

【前言】

       在米总的要求下,我们组开始了对VB版机房的升级重构,升级后功能基本不变,但是要求使用七层架构高度解耦能够灵活更换数据库,使用VB.net语言。在重构的过程中发现老版的VB机房系统中有很多的if textbox =”” then , if textbox=”” then。 我一看,这是典型的代码坏味道呀。有没有什么办法能够很轻松的把窗体中的控件遍历了呢?于是就有了这篇博客。

【正文】

【原理】

         System.Windows.Forms.Control 类 代表任意控件

         Typeof 函数 Typeoftextbox) 获取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


【总结】

       不将就,你就有收获;不思考,你就会错过。聪明的你,更喜欢怎么做呢?


评论 63
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农胖虎-java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值