cxGrid 6.45版本
Delphi 7
procedure TForm1.Button1Click(Sender: TObject);
begin
 ADOQuery1.Open;
end;procedure TForm1.cxGrid1DBTableView1FocusedRecordChanged(
  Sender: TcxCustomGridTableView; APrevFocusedRecord,
  AFocusedRecord: TcxCustomGridRecord;
  ANewItemRecordFocusingChanged: Boolean);
begin
Memo1.Lines.Add('cxGrid1DBTableView1FocusedRecordChanged');
//打开从表AdoQuery
end;
当打开数据集时,onFocusedRecordChanged事件是自行触发两次的。
有什么方法可运行一次.

解决方案 »

  1.   

    為什麼要這樣呢?LZ是要用cxgrid實現主從表吧提供個郵箱,我給你一個例子
      

  2.   

    这么写问题很大,你最好是动态绑定,自定义一个FocusedRecordChanged事件,初始时,grid是没有这个事件的,等open之后,在给grid的事件指向自定义事件
      

  3.   

    在cxGrid排序时,也会触发FocusedRecordChanged事件.
      

  4.   

    設計期間直接把主從表的master和detail的keyid設定並關聯好預期的數據庫連接KeyFieldNames=?
    MasterKeyFieldNames=?
      

  5.   

    APrevFocusedRecord,
      AFocusedRecord: TcxCustomGridRecord
    看一下这两个参数,应该是不一样的。
      

  6.   

    我希望是把主从表放到两个cxGrid中,而不是cxGrid本身那种主从表现方式。
      

  7.   

    用focusRowChange不如用数据集的afterscroll,open前将afterscroll指向nil,open后再指向回事件。