敲机房收费系统中组合查询时,总是会用到ComboBox组合框。好多窗体都涉及到下边的内容。
每个ComboBox中都有很多内容。通常对其添加信息的时候会使用以下代码:
cboField(1).AddItem "卡号"
cboField(1).AddItem "姓名"
cboField(1).AddItem "上机日期"
cboField(1).AddItem "上机时间"
cboField(1).AddItem "下机日期"
cboField(1).AddItem "下机时间"
cboField(1).AddItem "消费金额"
cboField(1).AddItem "余额"
cboField(1).AddItem "备注"
cboOperator(1).AddItem "="
cboOperator(1).AddItem "<>"
cboOperator(1).AddItem "<"
cboOperator(1).AddItem ">"
cboRelation(1).AddItem ""
cboRelation(1).AddItem "与"
cboRelation(1).AddItem "或"
cboField(2).AddItem "卡号"
cboField(2).AddItem "姓名"
cboField(2).AddItem "上机日期"
cboField(2).AddItem "上机时间"
cboField(2).AddItem "下机日期"
cboField(2).AddItem "下机时间"
cboField(2).AddItem "消费金额"
cboField(2).AddItem "余额"
cboField(2).AddItem "备注"
cboOperator(2).AddItem "="
cboOperator(2).AddItem "<>"
cboOperator(2).AddItem "<"
cboOperator(2).AddItem ">"
窗体的整片代码看下来,就是多多多。别说自己不想敲,估计要是让别人看,人家也不乐意看吧。 虽然自己也有想过怎样才能避免代码重复,不再冗余。可是总将就着也没查。无意中看到小伙伴的代码,哦,眼前一亮。
我们可以把一些相同类型的控件弄成一个组,即控件数组。控件数组最大的特点是:共享同样的事件过程。所以适用于若干个控件执行的操作相似的场合。
于是以上代码便可简化为:
Dim a, b, c
For a = 0 To 2
With cboField(a)
.AddItem "卡号"
.AddItem "姓名"
.AddItem "上机日期"
.AddItem "上机时间"
.AddItem "下机日期"
.AddItem "下机时间"
.AddItem "消费金额"
.AddItem "余额"
.AddItem "备注"
End With
Next a
For b = 0 To 2
With cboOperator(b)
.AddItem "="
.AddItem "<>"
.AddItem "<"
.AddItem ">"
End With
Next b
For c = 0 To 1
With cboRelation(c)
.AddItem "与"
.AddItem "或"
End With
Next c
其中涉及到with…end with 语句的使用,再复习一下
定义:
是指在一个单一对象或一个用户定义类型上执行一系列的语句。
语法:
With object
[statements]
End With
With 语句的语法具有以下几个部分:
部分 描述
object 必要参数。一个对象或用户自定义类型的名称。 statements 可选参数。要执行在 object 上的一条或多条语句。
说明: With 语句可以对某个对象执行一系列的语句,而不用重复指出对象的名称。例如,要改变一个对象的多个属性,可以在 With 控制结构中加上属性的赋值语句,这时候只是引用对象一次而不是在每个属性赋值时都要引用它
注意: 当程序一旦进入 With 块,object 就不能改变。因此不能用一个 With 语句来设置多个不同的对象。
以上代码也使用到了with语句,可以减少代码量,避免重复。
其实这些小小的知识点我们都曾在VB书,百例啊,视频中都见过的,只是当初看的太粗略,没有掌握。当我们在实践中用到的时候印象才会更加深刻吧。灵活运用这些知识,使代码不再冗余,方便你我。