加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

MSFlexGrid编辑VB6

发布时间:2020-12-15 01:47:13 所属栏目:百科 来源:网络整理
导读:目前我正在研究vb6应用程序.我想在MSFlexgrid中显示数据但是MSFlexgrid控件中没有编辑工具. 有没有办法编辑MSFlexgrid? 解决方法 有一种使用隐藏文本框的方法.在双击单元格时,文本框将可见,编辑可以在这里进行代码片段检查 Private Sub Form_Load() 'Settin
目前我正在研究vb6应用程序.我想在MSFlexgrid中显示数据但是MSFlexgrid控件中没有编辑工具.

有没有办法编辑MSFlexgrid?

解决方法

有一种使用隐藏文本框的方法.在双击单元格时,文本框将可见,编辑可以在这里进行代码片段检查

Private Sub Form_Load()

   'Setting Col And row

    MSFlexGrid1.Cols = 3
    MSFlexGrid1.Rows = 10
    'First row
    MSFlexGrid1.TextMatrix(0,0) = "ID"
    MSFlexGrid1.TextMatrix(0,1) = "Date"
    MSFlexGrid1.TextMatrix(0,2) = "Voucher Type"
    'some data
    MSFlexGrid1.TextMatrix(1,0) = "E0000001"
    MSFlexGrid1.TextMatrix(2,0) = "E0000001"
    MSFlexGrid1.TextMatrix(1,1) = "01/04/10"
    MSFlexGrid1.TextMatrix(2,1) = "01/04/10"    
    MSFlexGrid1.TextMatrix(1,2) = "Jrnl"
    MSFlexGrid1.TextMatrix(2,2) = "Jrnl"
End Sub

Private Sub MSFlexGrid1_DblClick()

    'If MSFlexGrid1.Col = 3 Or MSFlexGrid1.Col = 6 Or MSFlexGrid1.Col = 7 Then
        GridEdit Asc(" ")
    'End If
End Sub

Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)

        GridEdit KeyAscii

End Sub

Sub GridEdit(KeyAscii As Integer)

  'use correct font  
  Text1.FontName = MSFlexGrid1.FontName
  Text1.FontSize = MSFlexGrid1.FontSize

  Select Case KeyAscii

     Case 0 To Asc(" ")
        Text1 = MSFlexGrid1
        Text1.text = Trim(Text1.text)
        Text1.SelStart = 1000

     Case Else
         Text1 = MSFlexGrid1
         Text1.text = Trim(Text1.text)
        Text1.SelStart = 1000

 End Select

  'position the edit box


  Text1.Left = MSFlexGrid1.CellLeft + MSFlexGrid1.Left

  Text1.Top = MSFlexGrid1.CellTop + MSFlexGrid1.Top

  Text1.Width = MSFlexGrid1.CellWidth

  Text1.Height = MSFlexGrid1.CellHeight

  Text1.Visible = True

  Text1.SetFocus

End Sub

Private Sub MSFlexGrid1_LeaveCell()

  If Text1.Visible Then

    If MSFlexGrid1.Col = 6 Or MSFlexGrid1.Col = 7 Then
        If Text1.text = "" Then
            Text1.text = " "
        End If
    End If
     MSFlexGrid1 = Text1
     Text1.Visible = False

  End If

End Sub

Private Sub MSFlexGrid1_GotFocus()

  If Text1.Visible Then

    If MSFlexGrid1.Col = 6 Or MSFlexGrid1.Col = 7 Then

        If Text1.text = "" Then
            Text1.text = " "
        End If

    End If

     MSFlexGrid1 = Text1.text
     Text1.Visible = False

  End If

End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)

  'noise suppression

  If MSFlexGrid1.Col <> 6 And MSFlexGrid1.Col <> 7 Then

    KeyAscii = 0

  End If

  If KeyAscii = vbKeyReturn Then

    KeyAscii = 0

  End If

End Sub

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读