treeview中能不能为每个Node设置一个隐含的值?

bejesus 2003-05-22 09:05:12
想用隐含的值来标记每一个Node,有什么好办法?请高手指点!THX!
...全文
30 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hw256 2003-05-22
  • 打赏
  • 举报
回复
有两种方法:如果是简单的值,可以放入可以放到TreeNode的Tag属性中。
如果是较为复杂的,可将这些值封装为一个类或结构,然后放入TreeNode的Object属性中,此属性中可放入一个类或结构,当要取出此类时,可用显式转换,如下:
MyClass c1 = new MyClass();
//初始化略
TreeNode n1 = new TreeNode();
//将c1加入到TreeNode中
n1.Object = c1;
//...
//...
//取出c1
MyClass c2 = new MyClass();
c2 = (MyClass)n1.Object
fastxyf 2003-05-22
  • 打赏
  • 举报
回复
向 TreeView 或 ListView 控件添加自定义信息(Windows 窗体)
可以在 Windows 窗体 TreeView 控件中创建派生节点,或在 ListView 控件中创建派生项。派生使您得以添加任何所需的字段,和添加处理这些字段的自定义方法和构造函数。此功能的用途之一是将客户对象附加到每个树节点或列表项。此处的示例是针对 TreeView 控件的,但同样的方法也可用于 ListView 控件。

Visual Basic 注释 派生节点使您得以创建 Visual Basic 6.0 Tag 属性的功能。
派生树节点

创建一个从 TreeNode 类派生的新节点类,这个新节点类具有一个记录文件路径的自定义字段。

// C#
class myTreeNode : TreeNode
{
public string FilePath;

public myTreeNode(string fp)
{
FilePath = fp;
this.Text = fp.Substring(fp.LastIndexOf("\\"));
}
}
使用派生的树节点

新的派生树节点可用作函数调用的参数。

// C#
tv.Nodes.Add(new myTreeNode("c:\\duff.txt"));
如果传递了这个树节点且它被声明为 TreeNode 类类型,则需要将它转换为您的派生类类型。类型转换是从一种对象类型到另一种对象类型的显式转换。有关强制转换的更多信息,请参阅隐式转换和显式转换 (Visual Basic) 或 () 运算符 (Visual C#)。

//C#
protected void treeView1_AfterSelect (object sender,
System.Windows.Forms.TreeViewEventArgs e)
{
myTreeNode myNode = (myTreeNode)e.Node;
MessageBox.Show("Node selected is " + myNode.Filepath);
}
xiaha3 2003-05-22
  • 打赏
  • 举报
回复
使用tag属性
如:node1.tag=12;
引用 int a=0;
a=(int)node1.tag;
TheAres 2003-05-22
  • 打赏
  • 举报
回复
可以放到TreeNode的Tag属性中。


110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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