前言:
大家肯定都会遇到过文本框或组合框很多的时候,但都需要全部清空的,下面我就介绍一下怎么清空。
内容:
一、不同类型的一次清空
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 Function
End 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 Sub
End 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