当今的硬件与软件的环境下,如果一个软件没有一个很好的界面设计,功能不方面实用,就不能算是成功。因为不管它的内部有多么精巧的技术,只要用户不喜欢它,不愿意使用它,那么它的一切优越性都不能发挥作用,它的价值和作用只能是零。
一、为了减少代码量,提高时间效率,放置信息利用控件数组更快,更方便。
Dim i As Integer
'将内容加载到字段名控件中
For i = 0 To 2
With Combo1(i)
.AddItem "卡号"
.AddItem "姓名"
.AddItem "上机日期"
.AddItem "上机时间"
.AddItem "下机日期"
.AddItem "下机时间"
.AddItem "消费金额"
.AddItem "余额"
.AddItem "备注"
End With
Next i
'将操作符加载在控件中
For i = 0 To 2
With Combo2(i)
.AddItem "="
.AddItem "<"
.AddItem ">"
.AddItem "<>"
End With
Next i
'将组合关系加载到控件中
For i = 0 To 1
With Combo3(i)
.AddItem "与"
.AddItem "或"
End With
Next i
'给MSFlexGrid1控件添加显示内容的表头
With MSFlexGrid1
.rows = 2
.CellAlignment = 4
.TextMatrix(0, 0) = "卡号"
.TextMatrix(0, 1) = "姓名"
.TextMatrix(0, 2) = "上机日期"
.TextMatrix(0, 3) = "上机时间"
.TextMatrix(0, 4) = "下机日期"
.TextMatrix(0, 5) = "下机时间"
.TextMatrix(0, 6) = "消费金额"
.TextMatrix(0, 7) = "余额"
.TextMatrix(0, 8) = "备注"
End With
'窗体居中显示代码
Me.Left = Screen.Width / 2 - Me.Width / 2
Me.Top = Screen.Height / 2 - Me.Height / 2
二、清空控件全部内容代码如下:
'清空控件内容
Dim ctr1 As Control
For Each ctr1 In Me.Controls
If TypeOf ctr1 Is TextBox Then
ctr1.Text = ""
ElseIf TypeOf ctr1 Is ComboBox Then
ctr1.Text = ""
End If
Next
'清空表格,还原加载的第一行
MSFlexGrid1.rows = 1
MSFlexGrid1.rows = MSFlexGrid1.rows + 1
三、创建控件数组让ComBox控件也就是Combo1(0)只允许手动下拉不能随意删除数据。
'combo1数组不能手动改写只允许下拉选择
Private Sub Combo1_KeyPress(Index As Integer, KeyAscii As Integer)
Dim i As Integer
For i = 0 To 2
With Combo1(i)
KeyAscii = 0
End With
Next i
End Sub
四、对于如下此界面,它的姓名根本不存在有大于、小于、关系,所有要用代码给限制下。
'对应不同的字段名,改变操作符,后边有不存在关系的可以跟Or直接加。
Dim t As Integer
t = Index
If Combo1(t).Text = "姓名" Or Combo1(t).Text = "备注" Then '如果combo控件内容为姓名,备注则调整运算符
Combo2(t).Clear
Combo2(t).AddItem "="
Combo2(t).AddItem "<>"
Else
Combo2(t).Clear
Combo2(t).AddItem "="
Combo2(t).AddItem ">"
Combo2(t).AddItem "<"
Combo2(t).AddItem "<>"
End If
五、创建DTPicker控件数组,text文本框和DTPicker控件依据字段不同交替使用,一切是为了用户方便,减少用户手动输入。
'时间和日期字段名,使用DTPicker控件,根据选择显示相应的时间控件。
dim i as integer
i = Index
If Combo1(i).Text = "上机日期" Or Combo1(i).Text = "下机日期" Then
Text4(i).Visible = False
DTPicker1(i).Visible = True
DTPicker1(i).Format = dtpCustom
Else
Text4(i).Visible = True
DTPicker1(i).Visible = False
If Combo1(i).Text = "上机时间" Or Combo1(i).Text = "下机时间" Then
'设置格式为时间格式
DTPicker1(i).Format = dtpTime
DTPicker1(i).Visible = True
Text4(i).Visible = False
Else
Text4(i).Visible = True
DTPicker1(i).Visible = False
End If
End If
'让窗体加载时DTPicker隐藏
Dim q As Integer
For q = 0 To 2
DTPicker1(q).Visible = False
Next q
'查询按钮中加入
Dim w As Integer
For w = 0 To 2
If DTPicker1(w).Visible = True Then
Text4(w).Text = DTPicker1(w).Value
End If
Next w
六、给模块里边安排一个函数,作用是将字段转换成数据库可识别的语句。这个不是固定的,根据自己需求,用到那个给相应的加那个。
'字段转换
Public Function field(comboField$) As String
Select Case Trim(comboField)
Case "卡号"
field = "cardno"
Case "姓名"
field = "studentname"
Case "上机日期"
field = "ondate"
Case "上机时间"
field = "ontime"
Case "下机日期"
field = "offdate"
Case "下机时间"
field = "offtime"
Case "消费金额"
field = "consume"
Case "金额"
field = "cash"
Case "备注"
field = "status"
Case "与"
field = "and"
Case "或"
field = "or"
Case "学号"
field = "studentno"
Case "性别"
field = "sex"
End Select
End Function