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

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

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

(0)
上一篇 2022年4月24日 下午9:40
下一篇 2022年4月24日 下午9:40


相关推荐

  • vue开发环境搭建(WebStorm)

    vue开发环境搭建(WebStorm)vue 开发环境搭建 WebStorm https blog csdn net u0 article details 一 安装 Node js 搭建 Vue 环境 1 访问 Node js 官网 https nodejs org en download 进行安装包下载 2 下载成功之后运行安装程序 进行安装 如果是用安装程序进行安装 在安

    2026年3月26日
    1
  • ES 查询语法

    ES 查询语法QueryDSL 搜索条件越来越复杂 urlSearch 会越来越长这时候就该用 Elasticsearc 了 把搜索条件写在请求体中 methodQueryD 等同 URISearch 作用 GETGET http IP 9200 查看集群信息 GETGET http IP 9200 cat indices v 查看所有索引 GETGET index http IP 9200 索引名称 查看指定索引 GET

    2026年3月19日
    2
  • CentOS 7 查看repo 列表

    CentOS 7 查看repo 列表

    2021年5月13日
    140
  • Linux Ubuntu 虚拟机不能连网、Linux Ubuntu 虚拟机怎么连网

    主机与虚拟机文件传递移步:https://blog.csdn.net/qq_38786209/article/details/79984879notice:!!!虚拟机不能上网,可能会有很多原因,但是如果没有特殊要求,只是想尽快连上网使用的话,推荐采用以下方式。虚拟机不能上网:情形1:如果是刚刚安装好虚拟机,主机是无线网络(WIFI)连接,但是虚拟机不能上网,切记可以直接把网络模式…

    2022年4月7日
    85
  • DHCP协议解析

    DHCP协议解析DHCP(DynamicHostConfigurationProtocol,动态主机配置协议)是IETF为实现IP的自动配置而设计的协议,它可以为客户机自动分配IP地址、子网掩码以及缺省网关、DNS服务器的IP地址等TCP/IP参数。了解DHCP工作过程可以帮助我们排除有关DHCP服务遇到的问题。DHCP协议是基于UDP层之上的应用,本文结合抓报所得数据分析DHCP协议实现原理一、

    2022年5月23日
    51
  • 2025 年国内AI工具前十名最新排名「附推荐产品库」

    2025 年国内AI工具前十名最新排名「附推荐产品库」

    2026年3月12日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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