VB.NET 用循环判断文本框是否为空

VB.NET 用循环判断文本框是否为空VB.NET 用循环判断文本框是否为空

大家好,又见面了,我是你们的朋友全栈君。

    第一次敲机房的时候,有很多窗体中都有清空文本框或组合框中内容的功能,当时用了循环来做。现在第二次机房重构,发现判断文本框、组合框内容是否为空也可以用循环。其实这些功能最直接的方法就是一个一个的判断,不过这样代码基本上是重复的,这应该就是编程中的“坏味道”吧。我们并不是敲代码的机器,应该试着去尝试一些简单快速有效的方法。

    在网上查了一些方法,有一种是监理textBox文本框的控件数组,来循环判断,总觉得数组的命名跟咱们的机房有些问题,于是又发现了一个更好的方法。

    下面就具体介绍一下如何用循环来判断文本框是否为空以及清空文本。

1.新建CheckModel模块。(右击U层——添加——新建项,在弹出的对话框中继续选择即可添加)

VB.NET 用循环判断文本框是否为空

2.在新建的模块中定义结构体Term,并定义Term类型的结构体数组。(关于结构体http://baike.baidu.com/link?url=16VDWHvVeIsVSfICL4zaEcqIbLieYSp_Y6LzeCgRt77pJ_Ic0DyUJIg8r9BaT6RWCsDs7GvV0TvcB0SOhhTS5_

    '定义结构体
    Public Structure Term
        Dim controlSub As Control
        Dim strText As String
        Sub New(ByVal controlSub As Control, ByVal strText As String)
            With Me
                .controlSub = controlSub
                .strText = strText
            End With
        End Sub
    End Structure
    '定义Term类型的结构体数组
    Public arrayControl() As Term

3.以注册窗体为例,在frmRegister窗体中定义过程Rdim(),用来初始化Term类型结构体数组。

注册窗体:

VB.NET 用循环判断文本框是否为空

Rdim()过程:

    Public Sub Rdim()
        '重新定义arrayControl()数组维数
        ReDim Preserve arrayControl(10)
        '初始化数组
        arrayControl(0) = New Term(txtCardNo, "卡号")
        arrayControl(1) = New Term(txtStuNo, "学号")
        arrayControl(2) = New Term(txtName, "姓名")
        arrayControl(3) = New Term(txtCash, "金额")
        arrayControl(4) = New Term(txtRemarks, "备注")
        arrayControl(5) = New Term(cboDepartment, "系别")
        arrayControl(6) = New Term(cboGrade, "年级")
        arrayControl(7) = New Term(cboClass, "班级")
        arrayControl(8) = New Term(cboSex, "性别")
        arrayControl(9) = New Term(cboStatus, "状态")
        arrayControl(10) = New Term(cboType, "类型")
    End Sub

4.在CheckModel模块中添加CheckIsEmpty()函数,用来判断文本框、组合框的内容是否为空。

    '''定义判断是否为空的函数
    '''判断数组中控件的Text属性是否为空,并给出相应提示    
    '''</summary>    
    ''' <param name="arrayControl">需要遍历的结构体数组</param>    
    ''' <returns>返回Boolean值,true表示为空,false表示不为空</returns>
    Public Function CheckIsEmpty(ByVal arrayControl() As Term) As Boolean
        Dim termControl As Term
        '遍历结构体数组中的所有元素,如果控件文本为空,则弹出messsgbox提示用户 
        For Each termControl In arrayControl
            '判断窗体中的控件是否为文本框或组合框
            If TypeOf termControl.controlSub Is TextBox Or TypeOf termControl.controlSub Is ComboBox Then
                '判断文本框或组合框中的内容是否为空
                If termControl.controlSub.Text.Trim = "" Then
                    MessageBox.Show(termControl.strText & "不能为空", "", MessageBoxButtons.OK)
                    termControl.controlSub.Focus()
                    Return True
                    Exit Function
                End If
            End If
        Next
        Return False      '返回false,提示内容不为空
    End Function

5.在frmRegister窗体中调用CheckIsEmpty函数,检查是否为空。

    Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
        '调用Rdim()初始化数组
        Call Rdim()
        '调用CheckIsEmpty()函数检查文本内容
        If CheckIsEmpty(arrayControl) Then
            Exit Sub
        End If
    End Sub

6.在CheckModel模块中添加AllEmpty()函数,用来清空窗体中的文本框、组合框的内容

'定义清空文本框或组合框的函数AllEmpty
    Public Function AllEmpty(ByVal arrayControl() As Term) As Boolean
        Dim termControl As Term

        For Each termControl In arrayControl
            If TypeOf termControl.controlSub Is TextBox Or TypeOf termControl.controlSub Is ComboBox Then
                termControl.controlSub.Text = ""
            End If
        Next
        Return True
    End Function

7.在frmRegister窗体中调用CheckEmpty()函数,清空内容。

    Private Sub btnEmpty_Click(sender As Object, e As EventArgs) Handles btnEmpty.Click
        Call Rdim()
        If AllEmpty(arrayControl) Then
            Exit Sub
        End If
    End Sub

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/105766.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 2021.4.1 idea 激活码_通用破解码

    2021.4.1 idea 激活码_通用破解码,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • Java中的数据类型详解——boolean类型

    Java中的数据类型详解——boolean类型BooleanTest01.java/* 1、在java语言中boolean类型只有两个值,没有其他值: true和false。 不像c或者c++,c语言中1和0也可以表示布尔类型。 2、boolean类型在实际开发中使用在哪里呢? 使用在逻辑判断当中,通常放在条件的位置上(充当条件)。*/publicclassBooleanTest01{ publicstaticvoidmain(String[]args){ //错误:不兼容的类型:int无法转换为boole

  • iview中 on-row-click 事件[通俗易懂]

    iview中 on-row-click 事件[通俗易懂]点击表格当前行 显示数据 <!– 给表格绑定on-row-click 事件 –> <Table :columns=”columns” :data=”list1″ @on-row-click=”showDetail”></Table>————————————————————————————————sho…

  • CANoe/CANalyzer诊断功能的深入理解以及CAPL诊断编程实现[通俗易懂]

    CANoe/CANalyzer诊断功能的深入理解以及CAPL诊断编程实现[通俗易懂]之前和大家分享了CANoe的基础使用(分析、仿真、测试、诊断),这篇文章将继续深入探讨如何使用CANoe/CANalyzer中的诊断功能。诊断用于在将ECU安装到系统之前或之后配置,维护,支持,控制和扩展ECU,例如,一辆车。诊断通常在请求-响应方案中执行:测试仪(客户端)向…

  • protel 99se 简单的手动画pcb

    protel 99se 简单的手动画pcb(只适合做超级简单的板子)脑子里有原理图即可直接打开protel99se新建一个pcb(PCBdocument)1.      在左侧browsepcb下的browse的下拉框中选择libraries2.      可以看到compoents中有许多元器件选择自己需要的比如单片机就用DIP40就可以了3.      sip单列直插dip双列直插一

  • Tomcat7.0/8.0 详细安装配置

    Tomcat7.0/8.0 详细安装配置Tomcat7.0、Tomcat8.0详细安装配置图解,以及UTF-8编码配置注意:安装配置tomcat7.0及以上,需要先安装JDK1.7及以上才能支持。1、先下载tomcat压缩包Tomcat7:http://tomcat.apache.org/download-70.cgiTomcat8:http://tomcat.apache.org/do…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号