微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VB.Net文本框提示及一次性清空

【前言】

第二次基础机房收费系统,在很多系统优化方面有了更多的认识,对于窗体中文本框内容是否为空的提示以及一次性清空其内容,这些在第一次的机房收费系统中进行了尝试,在这次的机房收费系统个人重构的过程中,再次产生了这一方面的需求,如何减少代码的重复率,于是对该方面进行了探究。

【具体操作】

操作一:

对于判断窗体中文本框是否为空以及一次性清空文本框内容这一问题,我们需要在UI层中建一个公共类,将相应的定义与函数写在该类中。


操作二:

1、在新建的公共类TextModel中声明公共内容部分

<span style="font-size:18px;">Imports System.Windows.Forms.Control
Imports System.Object
Public Class TextModel

    '定义一个结构体Term
    Public Structure Term
        Dim controlSub As System.Windows.Forms.Control
        Dim strText As String
        Sub New(ByVal controlSub As System.Windows.Forms.Control,ByVal strText As String)
            With Me
                .controlSub = controlSub
                .strText = strText
            End With
        End Sub
    End Structure

    '用结构体定义一个Term类型数组
    Public Shared arrayControl() As Term</span>

2、判断文本框中内容是否为空

(1)在公共类中TextModel类中写入相应的函数

<span style="font-size:18px;"> '判断文本框是否为空的函数
    Public Shared Function CIsEmpty(ByVal ArrayControl() As Term) As Boolean

        '定义一个term变量
        Dim termControl As Term

        '遍历结构体数组中所有的元素,如果文本框为空,则进行相应的提示
        For Each termControl In ArrayControl

            If TypeOf termControl.controlSub Is System.Windows.Forms.TextBox Then
                If termControl.controlSub.Text.Trim = "" Then
                    Windows.Forms.MessageBox.Show(termControl.strText & "不能为空","提醒",Windows.Forms.MessageBoxButtons.OK,Windows.Forms.MessageBoxIcon.Exclamation)
                    termControl.controlSub.Focus()
                    Return True
                    Exit Function
                End If
            End If

        Next
    End Function</span>

(2)在实际窗体中,例如在frmOnlineRecord窗体中判断文本框中内容是否为空

<span style="font-size:18px;">Public Class frmOnlineRecord

    '对定义的结构体进行初始化处理,定义一个过程Rdim(),来完成该功能
    Private Sub Rdim()
        ReDim Preserve TextModel.arrayControl(1)

        TextModel.arrayControl(0) = New TextModel.Term(txtCardID,"卡号")
    End Sub

    Private Sub btnInquire_Click(sender As Object,e As EventArgs) Handles btnInquire.Click

        '调用Rdim过程进行数组初始化
        Call Rdim()
        If TextModel.CIsEmpty(TextModel.arrayControl) = True Then
            Exit Sub
        End If
   
   End Sub

End Class</span>

3、一次性清除文本框中的内容

(1)在公共类TextModel中写入相应的函数

<span style="font-size:18px;"> '设置对文本框一键清除
    Public Shared Function AllEmpty(ByVal arraycontrol() As Term) As Boolean
        Dim termControl As Term

        For Each termControl In arraycontrol
            If TypeOf termControl.controlSub Is Windows.Forms.TextBox Then
                termControl.controlSub.Text = ""

            End If
        Next
        Return True
    End Function</span>

(2)在对应窗体中调用 AllEmpty函数,实现一次性清除文本框中的内容
<span style="font-size:18px;"> Private Sub btnExit_Click(sender As Object,e As EventArgs) Handles btnExit.Click
        Me.Hide()

        '调用Rdim(过程及AllEmpty函数)
        Call Rdim()
        If TextModel.AllEmpty(TextModel.arrayControl) Then
            Exit Sub
        End If
    End Sub</span>

【学习感悟】

就像米老师跟我们说过:从此,我们要开始不将就。有不满意的部分,就需要我们去改变,做到更好。这个过程需要我们积极地去探索,最怕的就是“就这样吧”、“凑活吧”、“差不多就行了”,因为一旦有了这样的心理,我们很难再有新的发现。在机房重构的过程中,自己想到了如何解决文本框的问题,在网上找了一点资料后没有找到想要的内容,想要去找别的同学寻求帮助的时候,硕硕和宋荣凯对我说:网上有很多该方面的资料,自己找找看。很感谢他们给我一个自己探索的机会,正是在这样的情况下,才产生了意想不到的收获!

原文地址:https://www.jb51.cc/vb/257042.html

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

相关推荐