vb基础   vb实例教程   api调用   控件使用   经验技巧   数据库操作   算法及技术   vb源码下载
您的位置:首页 >> vb教程 >> 控件使用

MSFLEXGrid源码
出处:网络

   一个存疑很久的问题:移动Text到下一个MSF框时持续显示。现在我将修改后的源码放出。希望对大家有所帮助。本源码不含数据库部分。增加删除行功能。鼠标右键菜单正在考虑中。本源码还得到很多朋友帮助,在这一并谢过。

Option Explicit
Dim DefColor
Dim Horizenw

Private Sub Form_Load()
Dim I As Integer, lRow As Long
With MSFlexGrid1 '初始化表格
.Cols = 9
.Rows = 8
For I = 1 To 4
.ColWidth(I) = 750
Next I
For I = 5 To 8
.ColWidth(I) = 950
Next I
lRow = 1
For I = 1 To 7
.TextMatrix(lRow, 4) = 1
.TextMatrix(lRow, 0) = "表达式" & I
lRow = 1 + lRow
.RowHeight(I) = 400
Next I
End With
End Sub
Private Sub MSFlexGrid1_DblClick()
Dim I
With MSFlexGrid1
If .MouseCol = 0 Or .MouseRow = 0 Then Exit Sub

Text1.Left = .Left + .CellLeft: Text1.Top = .Top + .CellTop
Text1.Height = .CellHeight: Text1.Width = .CellWidth
Text1.Text = .Clip
Text1.Visible = True: Text1.SetFocus
Text1.SelStart = 0: Text1.SelLength = Len(Text1.Text)

End With
End Sub

Private Sub MSFlexGrid1_KeyUp(KeyCode As Integer, shift As Integer)
If KeyCode = vbKeyDelete Then MSFlexGrid1.Clip = ""
End Sub

Private Sub MSFlexGrid1_LeaveCell()
MSFlexGrid1.CellBackColor = DefColor
End Sub
Private Sub MSFlexGrid1_RowColChange()
With MSFlexGrid1
Text1.Visible = False
End With
End Sub
Private Sub MSFlexGrid1_Scroll()
With MSFlexGrid1
End With
End Sub

Private Sub Text1_Change()
MSFlexGrid1.Clip = Text1.Text
End Sub

Private Sub Text1_KeyUp(KeyCode As Integer, shift As Integer)
Dim c As Long
Horizenw = 5 ‘默认到第5列时返回,可以取消
Select Case KeyCode
Case vbKeyRight, vbKeyReturn
If MSFlexGrid1.Col < Horizenw - 1 Then
MSFlexGrid1.Col = MSFlexGrid1.Col + 1
MSFlexGrid1_DblClick
ElseIf MSFlexGrid1.Row < MSFlexGrid1.Rows - 1 Then
MSFlexGrid1.Col = 1: MSFlexGrid1.Row = MSFlexGrid1.Row + 1
MSFlexGrid1_DblClick
Else
With MSFlexGrid1 ’追加一行
.Rows = .Rows + 1
c = .Rows
.Col = 1: .Row = .Row + 1
.TextMatrix(c - 1, 0) = "表达式" & c - 1 ‘行头标志设置
.RowHeight(c - 1) = 400 ’保持行高
End With
MSFlexGrid1_DblClick

End If
Case vbKeyLeft
If MSFlexGrid1.Col > 1 Then
MSFlexGrid1.Col = MSFlexGrid1.Col - 1
MSFlexGrid1_DblClick
ElseIf MSFlexGrid1.Row > 1 Then
MSFlexGrid1.Col = MSFlexGrid1.Cols - 1: MSFlexGrid1.Row = MSFlexGrid1.Row - 1
MSFlexGrid1_DblClick
End If
Case vbKeyUp
If MSFlexGrid1.Row > 1 Then MSFlexGrid1.Row = MSFlexGrid1.Row - 1
MSFlexGrid1_DblClick
Case vbKeyDown
If MSFlexGrid1.Row < MSFlexGrid1.Rows - 1 Then MSFlexGrid1.Row = MSFlexGrid1.Row + 1
MSFlexGrid1_DblClick
Case vbKeyF4 ‘删除
If MSFlexGrid1.Row > 1 Then
MSFlexGrid1.RemoveItem MSFlexGrid1.Row
End If

End Select
End Sub

[返回]

     

首页 | 设为首页 | 加入收藏 | 关于本站 | 友情链接 | 版权声明

     
 
Copyright© www.bianceng.cn Powered by 编程入门网 All Rights Reserved
吉ICP备06005558号