有关TreeNode和TreeView的问题(可能很容易,也可能很难)(100分)

  • 主题发起人 主题发起人 cee
  • 开始时间 开始时间
C

cee

Unregistered / Unconfirmed
GUEST, unregistred user!
给定一个TreeNode, 怎么样得到它所属的TreeView?

具体来说, TreeNode.Owner, 是一个TTreeNodes类型,
TreeNode.Owner.Owner, 是一个TCustomTreeView类型...

可是我要得到这个TreeNode的父亲, 一个TTreeView类型的对象!

找了半天,找不到解答,只好求教于各路高手了。
 
事实上,你必须确定你的最终处理类是什么样的类或子类。
如果你需要一些子类的特殊处理,比如:TTreeView。那么
你必须确定你的 TreeView 是该类型,就可以强制转换:
AOwner := TTreeView(TreeNode.Owner.Owner);而如果是
其它子类,比如:TxxxTreeView,如果 TxxxTreeView 派生于
TTreeView,那么这种转换也是安全的,否则你就只可能用
AOwner := TxxxTreeView(TreeNode.Owner.Owner);来获取
主类。
 
用TreeNode.handle好象就出来了吧,没那么麻烦吧
 
在soul的提示下,我才想到:
Treeview:=TreeNode.Treeview as TTreeview;

就是这么简单!

唉,可惜不能给soul和自己加分。
 
后退
顶部