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


相关推荐

  • 直和和直积_什么是直积举个例子

    直和和直积_什么是直积举个例子今天又在文章中看到直和和直积的概念,顺手baidu了一下,粘贴下来,其实以前矩阵论有讲过的。。。还是到用的时候印象最深。![在这里插入图片描述](https://img-blog.csdnimg.cn/20200609171605249.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80ODA5NDczMg==,size_…

    2022年10月31日
  • 树莓派是什么 树莓派能做什么 树莓派的功能用途

    树莓派是什么 树莓派能做什么 树莓派的功能用途阿里云官方镜像源:https://developer.aliyun.com/mirror/?utm_content=g_1000304579树莓派是指RaspberryPi,是为学习计算机编程教育而设计,只有信用卡大小的微型电脑,其系统基于Linux。随着Windows10IoT的发布,我们也将可以用上运行Windows的树莓派。下面小编给大家介绍一下“树莓派是什么树莓派能做什么树莓派的功能用途”1.树莓派是什么树莓派是指RaspberryPi,是为学习计算机编程

    2022年6月10日
  • phpstorm2021激活码(破解版激活)「建议收藏」

    phpstorm2021激活码(破解版激活),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
  • pytorch安装命令「建议收藏」

    pytorch安装命令「建议收藏」转自:https://blog.csdn.net/sunny_580/article/details/78958236pytorch安装命令OS :Linux, PackageManager :conda, Python :2.7, CUDA :7.5Runthiscommand: condainstallpytorchtorchvisioncuda75-c…

    2022年6月24日
  • 品优购-day01笔记-代码规范&品优购项目准备工作&首页初步

    品优购-day01笔记-代码规范&品优购项目准备工作&首页初步typora-copy-images-to:media第01阶段.WEB基础:品优购-day01笔记-代码规范&品优购项目准备工作&首页初步学习目标能会引入ico图标能简单看懂网站优化的三大标签能使用字体图标(重点)能说出我们css属性书写顺序能跟上pink老师的节奏完成品优购项目一、代码规范(重点)1.概述欢迎使用品优购代码规范,这是借鉴…

    2022年5月28日
  • win10关闭445端口方法_服务器关闭445端口

    win10关闭445端口方法_服务器关闭445端口445端口是一种TCP端口,有了它我们可以在局域网中轻松访问各种共享文件夹或共享打印机,但也正是因为有了它,黑客们才有了可乘之机,他们能通过该端口偷偷共享你的硬盘,甚至会在悄无声息中将你的硬盘格式化掉。今天小编将为大家分享Win11关闭445端口的方法,一起来看看吧!更多重装系统教程尽在小白系统重装官网  1、首先,按Win+S组合键,或点击底部任务栏上的搜索图标,打开的Windows搜索窗口,顶部输入Windows防火墙,然后点击系统给出的最佳匹配WindowsDefender防

    2022年10月7日

发表回复

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

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