机房重构---清空文本框或组合框内容

来源:互联网 发布:淘宝买完东西店铺没了 编辑:程序博客网 时间:2024/06/04 23:25

前言:

大家肯定都会遇到过文本框或组合框很多的时候,但都需要全部清空的,下面我就介绍一下怎么清空。

内容:

一、不同类型的一次清空


1、新建一个Model类,用来存放这个清空结构体。(结构体,大家可以查一下,便于理解)

Module CheckModule    '结构体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合)的变量封装在内部,通过一定方法访问修改内部变量。    '可以合并不同类型的数据项来创建结构    '构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构    '一组数据往往具有不同的数据类型。例如, 在学生登记表中,姓名应为字符型;学号可为整型或字符型; 年龄应为整型;性别应为字符型;成绩可为整型或实型。 显然不能用一个数组来存放这一组数据。 因为数组中各元素的类型和长度都必须一致,以便于编译系统处理。为了解决这个问题,C语言中给出了另一种构造数据类型——“结构”。 它相当于其它高级语言中的记录。    '定义一个结构体Term    Public Structure Term        Dim comtrolSub As Control        Dim strText As String        Sub New(ByVal comtrolSub As Control, ByVal strText As String)            With Me                .comtrolSub = comtrolSub                .strText = strText            End With        End Sub    End Structure    '定义一个term类型的结构体数组    Public arrayControl() As Term    Public Function CheckIsEmpty(ByVal arrayControl() As Term) As Boolean        Dim termControl As Term        '遍历结构体数组中的所有元素,如果文本为空,进行提示,如果组合框为空,进行提示        For Each termControl In arrayControl                   '遍历结构体数组中所有元素              If TypeOf termControl.comtrolSub Is TextBox Then   '判断控件是否为文本框                If termControl.comtrolSub.Text.Trim = "" Then  '判断文本框内容是否为空                    MessageBox.Show(termControl.strText & "不能为空", "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)                    termControl.comtrolSub.Focus()                    Return True                    Exit Function                End If            ElseIf TypeOf termControl.comtrolSub Is ComboBox Then      '判断控件是否为组合框                If termControl.comtrolSub.Text.Trim = "" Then          '判断组合框内容是否为空                    MessageBox.Show(termControl.strText & "不能为空", "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)                    termControl.comtrolSub.Focus()                    Return True                    Exit Function                End If            End If        Next        Return False '如果不为空,返回False      End Function    Public Function AllEmpty(arrayControl() As Term) As Boolean        Dim termControl As Term                               '声明一个Term类型变量termControl         '遍历结构体数组中的所有元素,清空其Text属性         For Each termControl In arrayControl                  '遍历结构体数组中所有元素            If TypeOf termControl.comtrolSub Is TextBox Or TypeOf termControl.comtrolSub Is ComboBox Then                termControl.comtrolSub.Text = ""              '如果是文本框或组合框则清空              End If        Next        Return True                                          '如果为空返回 True      End FunctionEnd Module

2、然后初始化结构体,调用这个过程就可以了


 Private Sub Rdim()        ReDim Preserve arrayControl(9)       '重定义数组维数         '初始化数组        arrayControl(0) = New Term(txtCardNo, "卡号")        arrayControl(1) = New Term(txtBalance, "充值金额")        arrayControl(2) = New Term(txtStudentNo, "学号")        arrayControl(3) = New Term(txtName, "姓名")        arrayControl(4) = New Term(txtgrade, "年纪")        arrayControl(5) = New Term(txtspecialty, "专业")        arrayControl(6) = New Term(txtdepartment, "学院")        arrayControl(7) = New Term(cmbsex, "性别")        arrayControl(8) = New Term(cmbtype, "类型")        arrayControl(9) = New Term(cmbstate, "状态")    End Sub    '一件清空    Private Sub btnCanCel_Click(sender As Object, e As EventArgs) Handles btnCanCel.Click        Call Rdim()        If AllEmpty(arrayControl) Then            Exit Sub        End If    End Sub    '检查是否为空    Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click        ' Dim CardFacade As New         Call Rdim()        If CheckIsEmpty(arrayControl) Then            Exit Sub        End If    End SubEnd Class

二、相同类型或者类型比较少用,在自己窗体上使用


 Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles Button1.Click        For Each ctr As Control In Me.Controls            If TypeOf ctr Is TextBox Or TypeOf ctr Is ComboBox Then                ctr.Text = ""            End If        Next    End Sub