vb MSFlexGrid使用技巧一例

来源:百度文库 编辑:神马文学网 时间:2024/04/29 05:56:11
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