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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python处理CSV文件(一)

    Python处理CSV文件(一)CSV文件CSV(comma-separatedvalue,逗号分隔值)文件格式是一种非常简单的数据存储与分享方式。CSV文件将数据表格存储为纯文本,表格(或电子表格)中的每个单元格都是一个数值或字符串。与Excel文件相比,CSV文件的一个主要优点是有很多程序可以存储、转换和处理纯文本文件;相比之下,能够处理Excel文件的程序却不多。所有电子表格程序、文字处理程序或简单的文本编辑器都可以处理纯文本文件,但不是所有的程序都能处理Excel文件。尽管Excel是一个功能非常强大的工

    2022年7月20日
    20
  • scipy安装失败

    scipy安装失败pipinstallscipy安装失败可以从uci网站下载wheel安装包然后执行pipinstallxx.whl进行安装http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy转载于:https://www.cnblogs.com/timlong/p/6068370.html…

    2025年5月31日
    4
  • Unity2019(或2020)个人版如何激活使用(不是激活成功教程,正规激活流程)

    Unity2019(或2020)个人版如何激活使用(不是激活成功教程,正规激活流程)首先去官网下载对应版本的UnityHub地址:https://unity.cn/releases安装完UnityHub,运行会提示登录Unity账号,可以用微信登录,点击右上角的这个按钮选择微信登录然后用手机扫码即可登录成功后,会提示激活,选择【手动激活】点击【保存许可证申请】选择本地的某个目录,保存Unity_lic.alf然后点击license.unity.cn…

    2022年7月26日
    40
  • matlab用向量生成矩阵(matlab矩阵列向量)

    1、向量的创建1)直接输入:行向量:a=[1,2,3,4,5]列向量:a=[1;2;3;4;5]  2)用“:”生成向量a=J:K生成的行向量是a=[J,J+1,…,

    2022年4月16日
    241
  • DirectX修复工具V4.1公测![通俗易懂]

    DirectX修复工具V4.1公测![通俗易懂]最后更新于2019-9-6DirectX修复工具V3.9版已经正式发布了!还是像原来一样,共提供三个版本以供不同用户进行选择,请直达链接下载:标准版,增强版,在线修复版。以下的公测说明已经失效,仅供参考。———————————————————————-…

    2022年6月12日
    34
  • 百度地图api文档_奥维互动地图使用教程

    百度地图api文档_奥维互动地图使用教程新版百度地图API增加了发布版SHA1,开发版SHA1按官方教程操作即可,这里介绍一下发布版SHA1的获取方法。为apk签名,生成keystore文件(如果已经有keystore文件,跳过此步骤)打开cmd,定位文件夹到.andorid下,默认路径是users/用户名/.android输入keytool-list-v-keystore*.jks,*.jks为keystor

    2022年8月11日
    20

发表回复

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

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