treeview1.selected
node.edittext修改items的名称后
Onedited ....
然后怎么获得这个修改后的text?
node.text依然是以前的text。
怎么办?

解决方案 »

  1.   

    up again!!!
    难道非要我用其他窗口输入,然后才能得到修改后的text吗?
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
     TreeView1.Items.item[0].EditText;
    end;procedure TForm1.ShowText;
    begin
     showmessage(TreeView1.Items.Item[0].text);
    end;procedure TForm1.TreeView1Edited(Sender: TObject; Node: TTreeNode;
      var S: String);
    begin
      postmessage(self.Handle,WM_USER,0,0);
    end;
      

  3.   

    记住,上面的关键是postmessage这样在onedited事件触发后不是马上显示修改后的字(这样回是以前的),而是等待一个消息处理过程后再显示(这样就是改过的字),你只要定义一个消息处理过程,如上面的showtext函数,它的原形是
    procedure ShowText(var msg:Tmessage);message WM_USER;
      

  4.   

    设置全局变量mynode:Ttreenode;在treeview 的Onediting中:
    procedure TForm1.TreeView1Editing(Sender: TObject; Node: TTreeNode;
      var AllowEdit: Boolean);
    begin
    mynode:=node;
    end;在treeview的OnEdited中,可以获得mynode.text即修改之前的text在treeview的OnEdited之后(执行后),mynode.text为修改之后的text