判断文本框、组合框是否空(机房重构知识点总结)

机房重构进行时,多次用到判断文本框、组合框是否为空,以及清空文本框、组合框,为此专门抽象出一系列的方法,开始写的比较乱,昨天又重新理了一遍,拿来与大家交流学习。

上图是组合查询的界面,因为上篇讲到了窗体继承,所以故意选择组合查询的父窗体,以此为基础,谈一下怎样判断文本框、组合框是否为空,怎样清空文本框、组合框,同时作为窗体继承的实践,以及组合查询的前篇。

组合查询有三个条件,我们可以选择一个、两个或三个,这就需要我们去判断其中一部分文本框、组合框是否为空,怎么办?方法有两个,一是把需要判断的控件封装在控件数组里,另一种是放在容器Panel里(题外话:我开始用的GroupBox,结果不可以,后来是zhao同学提示的我用Panel,感谢zhao同学),下面用封装数组的方法实现:

<span style="font-family:SimSun;font-size:18px;">    '判断数组控件是否为空
    Public Function IsEmptyControlArray(ByVal ArrayControl() As Control)
        Dim control As New Control                       '定义控件类
        For Each control In ArrayControl                     '遍历数组中的控件
            If TypeOf (control) Is TextBox And control.Tag <> "" Then   '判断文本框是否为空   Tag <> ""防止漏写tag报错
                If control.Text.Trim = "" Then                           '如果空,请示用户输入
                    MsgBox("请输入" & control.Tag.ToString, vbOKOnly, "提示")
                    control.Focus()                                   '控件获得焦点
                    Return False                       '返回False
                End If
            ElseIf TypeOf (control) Is ComboBox And control.Tag <> "" Then  '判断组合框是否为空
                If control.Text = "" Or control.Text.Trim = "<请选择>" Then       '如果空,提示用户选择数据项
                    MsgBox("请选择" & control.Tag.ToString, vbOKOnly, "提示")
                    control.Focus()                         '获取焦点
                    Return False
                End If
            End If
        Next
        Return True
    End Function
</span>

如果是放在Panel中的,参数直接定义为Panel.ControlCollection即可,如果是判断窗体的全部控件,那么把参数定义为Windows.Forms.Control.ControlCollection。对于清空文本框、组合框也是同样的方法,这里不再赘述。

然后把你需要判断的控件放在数组里面,设置好相应的Tag,调用此方法即可。

封装控件以及调用的代码:

<span style="font-family:SimSun;font-size:18px;">            Dim ControlArray(2) As Control             '定义控件数组,获取组合1的控件
            ControlArray(0) = cboField1
            ControlArray(1) = cboOperator1
            ControlArray(2) = txtKey1

            If CommonMethod.IsEmptyControlArray(ControlArray) = False Then               '判断组合1的控件是否为空
                Exit Sub
            End If</span>

看一下效果:

方法就介绍到这里,欢迎大家批评指正。

判断文本框、组合框是否空(机房重构知识点总结),布布扣,bubuko.com

时间: 2024-08-01 03:31:02

判断文本框、组合框是否空(机房重构知识点总结)的相关文章

组合查询(机房重构知识点总结)

历经n多天,组合查询模板终于做完了,总结一下这几天的成果,和大家一起学习交流. 先看一下父窗体的关键代码: 父窗体代码: Public Class frmComboQuery Protected Overridable Sub frmComboQuery_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim ComboxArray(4) As ComboBox '定义控件数组,获取组合框 ComboxArray(0) = c

史上最简洁的向上取整(机房重构知识点总结)

在机房收费系统的基本数据设定中,有一个单位递增时间,这就需要我们满足如下需求: 假如递增单位时间是5,那么需要实现如下的效果: 5-->5 6-->10 7-->10 11-->15 我们一步一步来,先看一个简单的例子: 2.0-->2 2.1-->3 2.4-->3 2.6-->3 我开始用的取整,然后加1,结果带有小数的可以达到目的,但这会让2.0变为3,怎么办呢?abs(int(-x)),先转换为负数,取整后再变为正数即可.因为int(),会让一个浮点

职责链模式应用——下机(机房重构知识点总结)

下机涉及两个方面,消费时间和消费金额. 对消费时间的处理用的是职责链模式,感觉这个模式用的非常妙,參考的师哥的博客:<机房收费下机中用到的策略与职责链解析>:消费金额的处理用策略模式.针对不同的用户类型. 这里着重介绍职责链的应用. 依据需求,将时间分为三个阶段,准备时间:不收取费用:至少上机时间:大于准备时间,小于至少上机时间的,一律按至少上机时间算.单位递增时间:大于至少上机时间后.按单位递增时间累加. TimeHandler类,定义一个处理请示的接口 Public MustInherit

判断文本框、组合框为空太麻烦?

做机房重构这么长时间了,由纯三层转到加模式加各种其他技术.写了各个层的代码,每次写到要判断文本框或组合框为空的时候总要重复一个一个的判断,虽简单但写的太多了就感觉不怎么爽.不将就是创造的原动力,整点儿技术含量的方法. 今天就解决了这个问题:判断是否为空就两种情况:1.全部为空2.部分为空 1.全部为空 Public Function IsAllEmpty(ByVal frm As Form) As Boolean Dim control As New Control For Each ct1 A

Java知多少(88)列表和组合框

列表和组合框是又一类供用户选择的界面组件,用于在一组选择项目选择,组合框还可以输入新的选择. 列表 列表(JList)在界面中表现为列表框,是JList类或它的子类的对象.程序可以在列表框中加入多个文本选择项条目.列表事件的事件源有两种: 一是鼠标双击某个选项:双击选项是动作事件,与该事件相关的接口是ActionListener,注册监视器的方法是addActionListener(),接口方法是actionPerformed(ActionEvent e). 二是鼠标单击某个选项:单击选项是选项

MFC的组合框(ComboBox)控件切换下拉样式

由于课题的需求需要做MFC串口程序,看了百度下载的串口助手的界面风格,发现这个设计很好 波特率的组合框只给出了5个可选数值,然后第6个选项是Custom,即手动输入. 实际上DCB结构的BaudRate可选数值太多了,做成下拉框会很长很长,这种做法就是选用最常见的几个选项,不需要用户手动输入,也不需要在很长的列表中去选择. 从VS的属性框中可以看到,组合框控件有3种样式,也就是实现的功能是点击Custom选项时从Drop List切换到Dropdown. 从MSDN可以看到两者对应的宏分别为CB

VB.NET-轻松判断文本框是否为空,一键清空文本框内容

房收费系统的时候,令人相当恶心的一件事就是判断文本框和组合框是否为空还有清空文本框.基本上每个窗体都要进行判断,那一个接着一个的If...Else...语句,长长一串,看着就头疼,但是第一次做机房收费系统的时候竟然傻傻的一个不落都写了出来.真佩服当时的自己,不过这一次还是不要在做那种傻事了,因为我们经历了不少面向对象的洗礼,认识了封装. 向对象的范畴里,对于相同的或者类似的代码只要重复3次以上我们应该想到面向对象的三大特性之一:封装.想是想到了但是具体怎么通过封装来简化繁琐的判断任务呢? 1.

判断文本框是否为空

在窗体上往往有很多文本框需要输入信息,一些下拉框需要选择,对于这些信息的输入,我们总是需要判断输入的是否为空,以前,总是一个一个的判断,这样太繁琐,也可能会丢掉其中的一个两个的.现在就让我们轻松解决判断文本框是否为空吧. <span style="font-size:18px;">''' <summary> ''' 用来判断文本框和下拉框是否为空 ''' </summary> ''' <remarks></remarks> M

推断文本框、组合框为空(房重建知识汇总)

重建房收益,反复用于推断文本框.无论是组合框为空.并清除文本框.组合框.为了这个目的,一系列的抽象方法.我开始写的比较乱,昨天再次处理,家交流学习. 上图是组合查询的界面,由于上篇讲到了窗口继承.所以有益选择组合查询的父窗口,以此为基础.谈一下如何推断文本框.组合框是否为空,如何清空文本框.组合框,同一时候作为窗口继承的实践,以及组合查询的前篇. 组合查询有三个条件,我们能够选择一个.两个或三个,这就须要我们去推断当中一部分文本框.组合框是否为空.怎么办?方法有两个,一是把须要推断的控件封装在控