MSFlexGrid使用技巧一例
本来通过ERP中基础分类档案的每级编码规则控制来展现MSFlexGrid控件的使用技巧,大家只要向控件添加一个MSFlexGrid及Combo控件就好了,源码如下:
Option Explicit
Private Sub Combo1_Click()
MSFlexGrid1.text = Combo1.text
End Sub
Private Sub Combo1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyEscape Then
Combo1.Visible = False
MSFlexGrid1.SetFocus
Exit Sub
End If
If KeyAscii = vbKeyReturn Then
MSFlexGrid1.text = Combo1.text
Combo1.Visible = False
MSFlexGrid1.SetFocus
End If
End Sub
Private Sub Combo1_LostFocus()
Combo1.Visible = False
MSFlexGrid1.SetFocus
Exit Sub
End Sub
Private Sub Form_Load()
Dim i As Integer
Dim width, text, Archives
width = Array("400", "2100", "800", "800", "800", "800", "800", "800", "800", "800", "800")
text = Array("序号", "档案名称", "第1级", "第2级", "第3级", "第4级", "第5级", "第6级", "第7级", "第8级", "第9级")
Archives = Array("null", "科目", "项目分类", "固定资产分类", "部门分类", "员工分类", "供应商分类", "客户分类", "销售商分类", "地区分类", "出入库类别", "存货分类", "预留12", "预留13", "预留14", "预留15", "预留16", "预留17", "预留18", "预留19", "预留20")
With MSFlexGrid1
.Rows = 21
.Cols = 11
.FixedCols = 2
.FixedRows = 1
End With
For i = 1 To 9
Combo1.AddItem i
Next i
For i = 0 To 10
MSFlexGrid1.ColWidth(i) = width(i)
MSFlexGrid1.TextMatrix(0, i) = text(i)
Next i
For i = 1 To 20
With MSFlexGrid1
.TextMatrix(i, 0) = i
.TextMatrix(i, 1) = Archives(i)
.RowHeight(i) = 300
End With
Next i
End Sub
Private Sub MSFlexGrid1_Click()
Dim c As Integer, r As Integer
With MSFlexGrid1
c = .col
r = .row
If c > 1 And r > 0 Then
Combo1.Left = .Left + .ColPos(c) + 50
Combo1.Top = .Top + .RowPos(r) + 50
Combo1.width = .ColWidth(c)
Combo1.text = .text
Combo1.Visible = True
Combo1.SetFocus
End If
End With
End Sub
Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
Call MSFlexGrid1_Click
End If
End Sub