我现在放了一个TreeView控件,有一个Edit控件,我在Edit中OnChange事件来更新TreeView中选中节点的Data值,但是我在切换节点的时候也会触发Edit中的OnChange事件,这样下一个节点的值变成了上一个选中节点中Edit的值.
希望大家帮忙解决一下!!!

解决方案 »

  1.   

    procedure TForm1.TreeView1Changing(Sender: TObject; Node: TTreeNode;
      var AllowChange: Boolean);
    begin
      Edit1.Text := Node.Text;
    end;procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      ...在这个事件中更新TreeView中选中节点的Data值,不要用OnChange
    end;
      

  2.   

    hch_45(:
    用OnChanging也不行
    我现在就是在Edit中用的OnKeyUp事件,但是粘贴进去的就不能触发这个事件啊。
      

  3.   

    很简单,切换节点的时候不要Edit.Text := ...而是:
    SetWindowText( Edit.Handle, ... )。
    这样就不会触发Edit中的OnChange事件.
      

  4.   

    flyinwuhan(超越) ,你的这种方法我试过了,但是还是会触发Edit的OnChange事件。
      

  5.   

    这样做:
    procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
    begin
        edit1.Text:= treeview1.Selected.Text;
    end;procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin    if Key=13 then
        begin
          treeview1.Selected.Text:= edit1.Text ;
        end;
    end;
      

  6.   

    我想你要做的无非是让EDIT和treeview互动,可以当在edit输入完内容后,敲回车再变
      

  7.   

    onkeypress中,当回车时再执行处理程序
      

  8.   

    那么这样好不好:
    Edit---OnKeyPress:if edit.text <> treeview.item.data then
       treeview.item.data =  edit.text  应该可以了吧!
      

  9.   

    我想我还是没有说得太清楚吧,
    我是想在TreeView树的节点的,并给Edit赋值的时候,不触发Edit的OnChange事件。
    不知道有没有办法来实现他。
      

  10.   

    为什么不在Edit的OnExit中写呢
      

  11.   

    对啊,谢谢: xiaocuo_zrf(刀未锋)