用msflexgrid可以编辑数据,但要自己写代码。

解决方案 »

  1.   

    可以编辑,用文本框
    Text1.Move biao.CellLeft + biao.Left, biao.CellTop + biao.Top,biao.CellWidth 
    Text1.Width = biao.CellWidth
    Text1.Visible = True
    Text1.SetFocus
    Text1.Clear
    Text1.Text = biao.Text
    biao.Col = 0
      

  2.   

    思路是这样的:首先放一个文本框(隐藏的)。当在msflexgrid中移动焦点时会触发EnterCell事件,以及Click时调用EnterCell事件。然后在EnterCell中定位当前的单元格的位置,存在过程变量中。
    然后在Click事件以及KeyPress事件(KeyAscii = 13时做,即打回车)中,调用一个过程:把此文本框,移到当前的位置(即在EnterCell中得到的变量),把这个文本框适应当前单元格的高及宽,同时把当前单元格的值付给文本框,把文本框显现出来且具有焦点:
    with msflexgrid
    Tt(0).Top = .Top + .CellTop
    Tt(0).Left = .Left + .CellLeft
    Tt(0).width = .CellWidth
    Tt(0).Height = .CellHeight
    Tt(0).Text = .TextMatrix(CurR(Index), CurC(Index))
    Tt(0).Visible = -1
    Tt(0).SetFocus
    end with在文本框的change事件中:
    msflexgrid.TextMatrix(CurR(Index), CurC(Index)) = Tt(Index).Text
    在文本框的LostFocus事件中:
    Tt(Index).Visible = 0
    在文本框KeyPress事件中,即当按回车或空格说明输入完成
    If KeyAscii = 13 Then
      msflexgrid.SetFocus
    ElseIf KeyAscii = 27 Then
      msflexgrid.SetFocus
    End If
    在msflexgrid的Scroll事件中
    Tt(Index).Visible = 0其他的细节你再去想想,假如不是文本框呢?是combobox?
      

  3.   

    原理既当click msflexgrid的一个格,把隐含的textbox 显现出来,移到click位置,输入数据,更改msflexgrid的数据,更改数据库就简单了
      

  4.   

    Formula One ,Spread,Cell,Excell ...
      

  5.   

    谢谢,1.你们的意思是用flexgrid,然后textbox编程实现。
    2.网虫兄的意思是用变量作为中介,也许更优一些。我的mail是[email protected] 敬候您的回复。
    3.袁前辈是不是说true dbgrid控件?这东东好像是要钱买的,到了期限,自己写的程序就跟着过期了。有无时间限制的么?
    4.tdbgrid,vsflexgrid,mystelflexgrid这些在哪里载?