DBGrid.DataSource.DataSet.DisEnbleControls;
DBGrid.DataSource.DataSet.EnbleControls;
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
             毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
  I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”等字样,删除它们';
I.Desire := '加不加分随你';
—————————————————————————————————
       

解决方案 »

  1.   

    插入记录之前dbgrid1.dataset.disablecontrols
    之后 dbgrid1.dataset.enablecontrols
      

  2.   

    你在AfterPost中使用DBGrid1.Repaint; 或者刷新一下Table,Query.
      

  3.   

    procedure TCustomerData.DataModuleCreate(Sender: TObject);
    begin
        ADOQuery1.Open;
        ADOQuery2.Open;
    end;procedure TCustomerData.ADOQuery1AfterScroll(DataSet: TDataSet);
    var
        i: integer;
    begin
        i := MainFm.DBGrid1.Fields[0].AsInteger;
        ADOQuery2.Close;
        ADOQuery2.Parameters.ParamByName('idMain').Value := i;
        ADOQuery2.Open;
    end;procedure TCustomerData.ADOQuery1BeforePost(DataSet: TDataSet);
    begin
        MainFm.DBGrid1.DataSource.DataSet.DisableControls;
        if MainFm.DBGrid1.Fields[0].AsString = '' then begin
            Application.MessageBox('对不起,不能插入空行', '错误信息', MB_OK);
            MainFm.DBGrid1.DataSource.DataSet.EnableControls;
            Abort();
        end
    end;还是不行