在机房收费系统基本窗体实现以后进行整体的优化。
- 比如一些界面的美化、控件的大小和字体、控件是否可以输入、控件的输入条件—(数字、字母、汉字)、清空等
- 整体的父子窗体的大小
- msflexgrid控件随内容的大小变化而变化
- 时间控件和数据库中时间格式是否一致
列举部分问题及其解决方法如下:
1.dtpicker控件的时间和日期格式设置
Private Sub DTP1_Change()
'如果选择上下机日期
If Trim(Comfield1.Text) = "上机日期" Or Trim(Comfield1.Text) = "下机日期" Then
Text1.Text = DTP1.Value
Else
If Trim(Comfield1.Text) = "上机时间" Or Trim(Comfield1.Text) = "下机时间" Then
'将dtpicker控件改为time格式,并可见
DTP1.Format = dtpTime
DTP1.Value = Time
Text1.Text = DTP1.Value
End If
End If
End Sub
2.选中表并更改颜色,格式
Dim col As Integer
If MSFlexGrid1.Rows < 2 Then
Exit Sub
End If
If MSFlexGrid1.row < 1 Or MSFlexGrid1.row > MSFlexGrid1.Rows - 1 Then
Exit Sub
End If
If MSFlexGrid1.TextMatrix(MSFlexGrid1.row, 0) = "√" Then
MSFlexGrid1.TextMatrix(MSFlexGrid1.row, 0) = ""
'改变行颜色(变为没选中之前的)
For col = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.col = col
MSFlexGrid1.CellBackColor = vbWhite
Next col
Else
MSFlexGrid1.TextMatrix(MSFlexGrid1.row, 0) = "√"
'改变行颜色(选中后的颜色)
For col = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.col = col
MSFlexGrid1.CellBackColor = vbRed
Next col
End If
3.时间比较,时间格式设置
Private Sub DTPicker1_Change()
DTPicker1.Format = dtpCustom
DTPicker1.CustomFormat = "yyyy-MM-dd" '设置DTPicker控件的显示格式为yyyy-MM-dd格式
date1 = DTPicker1.Value
date2 = DTPicker2.Value
date3 = Format(Date, "yyyy-MM-dd") '获得实际日期
'比较起始日期和实际日期的大小
If DateDiff("n", CDate(date1), CDate(date3)) < 0 Then
MsgBox "超过规定日期,请重新选择日期!", vbOKOnly + vbExclamation, "提示"
Exit Sub
End If
4.设置msflexgrid控件的各个列宽
代码一:
Private Sub Form_Load()
'设置msflexgrid控件的宽度
MSFlexGrid1.ColWidth(0) = 800
MSFlexGrid1.ColWidth(1) = 2000
MSFlexGrid1.ColWidth(2) = 2000
MSFlexGrid1.ColWidth(3) = 2000
MSFlexGrid1.ColWidth(4) = 2000
End Sub
代码二:
'目的随着内容改变更改列的宽的
Public Sub AdjustColWidth(frmCur As Form,
gridCur As Object,
Optional bNullRow As Boolean = True,
Optional dblIncWidth As Double = 0)
Dim i As Integer
Dim j As Integer
Dim dblWidth As Double
With gridCur 'msflexgrid1
For i = 0 To .Cols - 1
dblWidth = 0
If .ColWidth(i) <> 0 Then
For j = 0 To .Rows - 1
If frmCur.TextWidth(.TextMatrix(j, i)) > dblWidth Then
dblWidth = frmCur.TextWidth(.TextMatrix(j, i))
End If
Next j
.ColWidth(i) = dblWidth + dblIncWidth + 550
End If
Next i
End With
End Sub
调用函数:
AdjustColWidth frminquiryrechargerecord, MSFlexGrid1