收录日期:2019/04/24 08:30:12 时间:2016/05/18 03:13:48 标签:VCL组件开发及应用
我在TreeView控件中增加了好几个根节点,然后在每个根节点下都放了子节点,我想实现当我点在任何一个根节点下的子节点上,这时能触发一个事件,并且要显示出改子节点所属的根节点?
怎么来实现???????????????????????????????????????
TreeView的OnChange事件,
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
  while Node.Parent <> nil do Node := Node.Parent;
  ShowMessage(Node.Text);
end;
up
为什么不在OnClick上呢?
单击时,先响应OnChange(),然后响应OnClick()
其实都可以吧

不过最好先判断一下
if TreeView1.Selected = nil then Exit;

否则下面用到时可能会出错。
不要用OnClick因为,OnClick不管你是不是改变当前选中的节点它都会触发的而OnChang是在切换到另一个节点时才会触发的
onchange
up
帮你UP
var i:integer ;
   tempNode:TTreeNode ;
begin
 TempNode:=Treeview1.Selected ;
   for i:=0  to TreeView1.Selected.Level -1 do
   begin
     TempNode:=TempNode.Parent ;
   end ;
   showmessage(tempnode.Text) ;
end ;
应该没有错。如果UP有分,那我还要加分,哈哈哈。
如果你想不管在任何时候都要显示出此子结点的根结点,那就用ONCLICK事件了
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
   if node.parent<>nil then
   begin
     showmessage(node.Parent.Text);
   end;
end;
up
var
  MYnode :Ttreenode;
  str,str1 :string;
begin
  if  treeview.Selected <>nil then
    begin
       str:=treeView.Selected.Text;
       MYnode:=treeview.Selected.Parent;
       if assigned(MYnode) then
       str1:=Mynode.Text;
       showmessage(str+str1);
    end;
onchange()事件里,上面已经有人说了

请教大家怎样可以让网页关闭时提示设为首页,帮帮忙啊! TMD,做项目做成这样,快TM疯了!!!!!!!!!!! 求IP地址的正则表达试。C#的。 儿子出生了,散分庆祝~~~!!!!!! 动态改变一下TEXTBOX属性 Skin,要说爱你不简单 菜鸟求救!一个有关工具栏的问题! 在多文档应用程序中, 如何为每个子窗口创建自己的能够实现某一功能的线程? 日文编码问题!请大大们继续帮忙解决!!!!! c中的 取高低位的算法,用c#如何实现? 脚本如何知道 asp.net验证控件是否通过验证? VB.net里面原来VB6里的app.hinstance怎么写? 第一次组织产品技术成果鉴定会议,现在知道了很多,以后不崇拜了。。。。。 一个你想不到的难题!!!! 那里有 VB Printer 打印模块的详细操作说明?? 给IDC_EDIT11赋值难题 请问在 vs2005 中 如何 获得打印机的 数量 和 全部打印机 的名称 ?????? 急!!!!!!!!!!!!! sql面试题(有点难度) 调查:你在用五笔吗? 把tomcat中的work装挂入内存虚拟盘中,能不能提高性能呢? sybase for pc-client 关于超时的问题 window.location与document.location的区别真的有可读不可写的问题吗? 新手求教一个shell的一个属性? #### 批量下载语音文件 ##### MagicAJAX-0.3.0-NET1.1_2 请问如何模拟实现java的范型 DIV佈局如何修改至於quirk mode正常運行? 用VC编写HTML编辑器 100分!!!!我的电脑出事了.