我的dbgrid,可以edit,我想问的就是,如果我有2条记录,那我编辑其中一条的时候,然后把指针切换到另一条,就可以自动post,但是如果我只有一条记录的时候,那如何在我填写完成之后自动post呢?(不使用DBNavigator和另外添加按钮)

解决方案 »

  1.   

    我的意思是不用人工干预,自动post,就像换到了另外一条记录上就自动post了一样
      

  2.   

    当dbgrid失去焦点时 触发post这个事件。或者当鼠标不在dbgrid的范围内触发。
      

  3.   

    什么时候为填写完了呢?你必须跟计算机有个约定,什么时刻什么状态下,表示填写完了。除了上面已经陈述了的情况和方法外,你还可以在“填写完”的时刻,按一下向下的方向键,或来个回车,或输入一个特别的字符,或鼠标来个双击,或利用计时器计时、在超过多长时间不按键了等等约定,来告诉计算机:“我填写完啦”,那么,你就可以利用这些动作所引发的事件来写 DBGrid.DataSource.DataSet.Post;最典型的例子是利用回车来约定表示输入结束:
    procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#13 then DBGrid1.DataSource.DataSet.Post;
    end;
      

  4.   

    自己搞定了,利用CheckBrowseMode