请教一个treeview的问题??想了很久,希望可以得到大家的帮助。。。

alfree 2004-08-11 08:04:01
举个例子,问题简化一下:
有一个树形结构和一个edit1框:
--公司1
--公司2
--公司3
很容易在treeview的change事件中可以实现点击不同节点时在edit1中显示不同的节点名,比如点击‘公司1’在edit1中显示‘公司1’,同样,点击‘公司2’在edit1中显示‘公司2’。

现在关键是:??我想实现 :在‘公司1’选中时,在edit1中修改‘公司1’为其他值时,树形结构中的‘公司1’也动态改变。当然‘公司2’选中时也可以在edit1中编辑‘公司2‘。

如果用edit1的change事件,当treeview切换节点时也会触发edit1的change事件,就引起了程序的混乱。请问该怎么处理呢?
...全文
117 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hthunter 2004-08-11
  • 打赏
  • 举报
回复
那可能是你别的地方写错了
alfree 2004-08-11
  • 打赏
  • 举报
回复
我知道了,也理解了,我调试过呀,可能是因为我用的edit框太多了,因为我每个节点都要对应很多信息,多谢了。
hthunter 2004-08-11
  • 打赏
  • 举报
回复
ChangeNode -> TreeView1Change -> Edit1.Text := Node.Text; -> Edit1's text is changed -> Edit1Change -> TreeView1.Selected.Text := Edit1.Text;

一点都不混乱啊,你设断点或者单不调试一下就很清晰了
hthunter 2004-08-11
  • 打赏
  • 举报
回复
没有混乱啊,怀疑你运行过没有?
alfree 2004-08-11
  • 打赏
  • 举报
回复
对,我是想用edit1的change事件。
但是用treeview的click或者change事件在edit1中显示对应数据时,都会引发edit1的change事件,使得数据混乱了,怎么办呢?
hthunter 2004-08-11
  • 打赏
  • 举报
回复
测试了一下,实际上这样并不会引起冲突:
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
Edit1.Text := Node.Text;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
TreeView1.Selected.Text := Edit1.Text;
end;

切换节点时是先触发TreeView1Change然后才触发Edit1Change,就相当于在Edit1Change重新把相同的值写了一遍到Node里面去而已
hthunter 2004-08-11
  • 打赏
  • 举报
回复
哦,不好意思,看错了一点
hthunter 2004-08-11
  • 打赏
  • 举报
回复
TreeView的Change事件是响应节点的切换,修改节点的值并不会触发TreeView的Change事件吧?

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧