使用dxTreeList或cxTreeList,某列为CheckBox类型,当其父结点选中时,需要更新其下级节点都被选中。 在change时,怎么获得当前的checkbox是true值还是false值呢。我尝试用过该列的change事件,用cxTreeList1.FocusedNode.Values[0]或cxTreeList1.FocusedNode.EditValue,但是其值都是更新之前的值,而不是新值。  只有在edited事件取值才是新的,但是edited事件必须在焦点移开当前编辑点后才能不触发,是不理想的。 在此,向各位大侠求助,急用!

解决方案 »

  1.   

    相信你在http://www.yestar2000.com/TechCenter/202/TC_13766.htm上面能找到答案!
      

  2.   

    这个不知道是不是dx(cx)TreeList的Bug,我以前也遇到这样的情况,我以前解决方法是:
    在Check列的OnToggleClick上写以下代码:
    procedure TForm1.dxTreeList1Column1ToggleClick(Sender: TObject;
      const Text: String; State: TdxCheckBoxState);
    begin
      if dxTL.FocusedNode.Values[dxTreeList1Column1.Index] = '1' then
        dxTL.FocusedNode.Values[dxTreeList1Column1.Index] := '0'
      else
        dxTL.FocusedNode.Values[dxTreeList1Column1.Index] := '1';
    end;
    实时更新节点值,再好象就没有什么办法了,可能我还没有找到
      

  3.   

    哈哈,找到答案了 ,将该列的ImmediatePost设为true
      

  4.   

    ImmediatePost设为true
    回去试试~~