vb.net 文本框为空提示,一键清空文本框所有内容

已经第二次机房收费系统重构了,一遍当然得有一遍的效果,正如对于文本框为空的提示方法,回顾第一遍机房,那些傻里傻气的If语句让自己对代码的亲和度大打折扣啊!那么到底有什么办法解决那些重复性的判断呢?这时候我们就要提到所谓的Model窗体了。在Model窗体中,建立一个封装数组,当窗体中需要判断大量文本框为空的时候,只需简单的调用即可。

新建一个Model类,来存放公共需要的部分。

1、定义一个结构体Term,,且用结构体封装一个数组

Public Structure Term '定义结构体termDim controlSub As ControlDim strText As StringSub New(ByVal controlSub As Control, ByVal strText As String) '初始化对象With Me.controlSub = controlSub.strText = strTextEnd WithEnd Sub2、用结构体定义一个Term类型数组 '定义一个Term类型的结构体数组Public arrayControl() As Term3、判断文本框是否为空的函数 ''' <summary>''' 判断文本框是否为空,进而给出相应提示''' </summary>''' <param name="ArrayControl"></param>''' <returns></returns>''' <remarks></remarks>Public Function CIsEmpty(ByVal ArrayControl() As Term) As BooleanDim termControl As Term '定义一个term类型变量'遍历结构体数组中的所有元素,如果控件文本为空,则进行相应提示For Each termControl In ArrayControl'遍历结构体数组中的所有元素If TypeOf termControl.controlSub Is TextBox Then '判断控件是否为文本框If termControl.controlSub.Text.Trim = "" Then'判断文本框内容是否为空MessageBox.Show(termControl.strText & "不能为空!", "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)termControl.controlSub.Focus()'获得焦点Return TrueExit FunctionEnd If4、当然函数是写出来了,但是还得对定义的结构体进行初始化处理。我们需要在Registe的U层定义一个过程Rdim(),来完成此功能 Private Sub Rdim()ReDim Preserve arrayControl(9) '重新声明数组维数'初始化数组arrayControl(0) = New Term(txtCard, "卡号")arrayControl(2) = New Term(txtstudentNo, "学号")arrayControl(3) = New Term(txtstudentName, "姓名")arrayControl(4) = New Term(ComboSex, "性别")arrayControl(5) = New Term(txtgrade, "年级")arrayControl(6) = New Term(txtclass, "班级")arrayControl(7) = New Term(txtCash, "金额")arrayControl(8) = New Term(txtstatus, "注释")End Sub5、准备工作做完了,剩下的就是简单的调用了!在Register窗体中直接调用CIsEmpty函数即可。Call Rdim() '首先调用Rdim过程进行数组初始化'调用CIsEmoty()函数,检测是否输入文本框内容If CIsEmpty(arrayControl) ThenExit SubEnd If这样当运行出现文本框为空的情况,系统则会自动提示,方便简洁!

6、那么如何能够实现一键清除操作呢?方法同判断文本框为空一样,只需要编写一个清除的函数则可

''' <summary>''' 清楚文本框的数据''' </summary>''' <param name="arraycontrol"></param>''' <returns>返回Boolean值,true</returns>''' <remarks></remarks>Public Function AllEmpty(ByVal arraycontrol() As Term) As BooleanDim termControl As Term '定义一个term类型变量For Each termControl In arraycontrolIf TypeOf termControl.controlSub Is TextBox ThentermControl.controlSub.Text = ""'判断控件类型,如果是文本框或组合框则内容清空End IfNextReturn TrueEnd Function7、然后调用:Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.ClickCall Rdim() '首先调用Rdim过程进行数组初始化'调用AllEmoty()函数,删除文本框中内容If AllEmpty(arrayControl) ThenExit SubEnd IfEnd Sub 上述虽然只是在注册窗体中描述,但是对于其他的文本框以及组合框都是使用的,只要在对应的窗体中对结构体进行初始化处理,然后直接调用则可。

感受:

机房收费依旧在一步一步的进行着,与以往不同的则是所谓的“感觉”已经成熟了,最起码当遇到问题的时候自己会想尽办法去寻找最简单实用的方法来满足其需求。

旅行是一种病,当你把身边的人都传染了,

vb.net 文本框为空提示,一键清空文本框所有内容

相关文章:

你感兴趣的文章:

标签云: