DBgrid中如下显示:Code Name Address
  1   a     3
我的光标定位在数据3上,修改它的值后,点击回车,可以将修改数据库中的相应
的值,另外,我把Dbgrid的ReadOnly设为False,dbEdit设为 True,还是不能修改
单元格的内容??谢谢

解决方案 »

  1.   

    1在Form.OnKeyPress事件中写如下代码:另外form的keypress设为trueif Key = #13 then 
    if ActiveControl = DBGrid1 then begin 
    TDBGrid(ActiveControl).SelectedIndex := TDBGrid(ActiveControl).SelectedIndex + 1; 
    Key := #0; 
    end; 2.另外,我把Dbgrid的ReadOnly设为False,dbEdit设为 True,还是不能修改
    单元格的内容??谢谢
    这是你数据连接的问题看看datasource设了没 datasource 的autoedit是否为
    true
      

  2.   

    你们的方法都不好,这需要编一个单独的自定义PROCEDURE,但不是响应FORMCLICK事件,而是DBGRIDCLICK的。虽然不是特别麻烦,但我现在实在没空,抱歉。
      

  3.   

    我试了一下,还是不行
    我的dataSource是动态创建的,没有修改它的属性
      

  4.   

    看来,还是给你来详细点的吧。
    一,创建一个辅助FORM,NAME:FRM_EDITOR。关于DATASOURCE、DATAACCESS控件等,我略去。同时在其中定义一个PUBLIC 的PROCEDURE  EDIT(XX:STRING);
       BEGIN
            TABLE1.OPEN;
            TABLE1.LOCTE('JOB',XX,[]);
            SHOWMODAL;
       END;
    二,在主FORM中,DBGRID的DGROWSELECT属性设置为TRUE,READONLY也是TRUE。
        添加另一个控件DBEDIT1,VISIBLE:=FALSE。还要一个按纽,BTN。在BTN的ONCLICK事件中,添加如下代码:FRM_EDITOR.EDIT(DBEDIT1.TEXT);即可。
    三,在主FORM的DBGRIDONCLICK事件中,使用与BTNONCLICK同样的代码(代码重用)。