哦,我是说修改单元格里的内容,然后将相应修改反映到数据库中(我用shape命令在mshflexgrid里显示了内容)?

解决方案 »

  1.   

    这个控件本身不提供编辑功能,但是可以用转换的方法得到。常用的是定义一个TEXT框,在点击控件时移动到相应位置,在控件的移动焦点事件中将文本框的文本赋予控件。顺便问一下,你用SHAPE命令干什么?
      

  2.   

    MSHFLEXGRID 不能修改。要实现修改功能的方法:同意上
      

  3.   

    用KeyDown来处理事件
    Private Sub Grid_KeyDown(KeyCode As Integer, Shift As Integer)
        Select Case KeyCode
        Case vbKeyReturn
        Case vbKeyInsert
        End Select
    End Sub
    用KeyPress做编辑
    Private Sub Grid_KeyPress(KeyAscii As Integer)
        If KeyAscii <> vbKeyBack Then
            Grid.TextMatrix(Grid.Row, Grid.Col) = Grid.TextMatrix(Grid.Row, Grid.Col) & Chr(KeyAscii)
        Else
            If Len(Grid.TextMatrix(Grid.Row, Grid.Col)) = 0 Then Exit Sub
            Grid.TextMatrix(Grid.Row, Grid.Col) = Left(Grid.TextMatrix(Grid.Row, Grid.Col), Len(Grid.TextMatrix(Grid.Row, Grid.Col)) - 1)
        End If
    End Sub保存自己写就行了。编辑根本不用附加控件的。
      

  4.   

    用了shape根本不能修改了,会带来很多麻烦的.另外答复tomid(磨牙狼):不用shape命令,那就不如用datagrid,何必又用MSHFLEXGRID
      

  5.   

    如:remanwang(玩玩儿) 所说,用SHAPE命令不能修改,那么MSHFLEXGRID控件比DATAGRID好在哪里?
    又:如siscowet(扬) ,我原来也用KeyDown来处理事件,我用的结果是MHFLEXGRID的内容比输入的少一个字符,最后只有用TEXTBOX输入才得到完整字符。
      

  6.   

    这个控件本身不提供编辑功能,可以在KeyPress中处理
      

  7.   

    我用shape确实为了提供一个更好的同时显示多个表纪录的界面。等我实现了修改给分!