自定义TreeNode属性

一、目的:自定义TreeNode属性,让控件可以存储更多属性。有利于开发
二、方法:

public class GroupTreeNode : TreeNode
    {
        private IPAddress ip;
        private HostStatus status;
        public HostStatus Status
        {
            set { status = value; }
            get { return status; }
        }
        public IPAddress IP
        {
            set { ip = value; }
            get { return ip; }
        }

        public GroupTreeNode()
            : base()
        {

        }
        public GroupTreeNode(string text, int imageIndex, int selectedImageIndex, IPAddress address)
            : base(text, imageIndex, selectedImageIndex)
        {
            this.ip = address;
        }
    }

三、应用

ContractedBlock.gif ExpandedBlockStart.gif Code
            TreeNode rootNode;
            TreeNode channelNode;
            GroupTreeNode groupTreeNode;
            
string sql = "select sysname from sysconfig ";
            CMySql mydb 
= new CMySql();
            DataTable dt 
= new DataTable();
            dt 
= mydb.SelectDt(sql);
            
foreach (DataRow row in dt.Rows)
            {
                
foreach (DataColumn column in dt.Columns)
                {
                    
string mss = String.Format("{0}", row[column]);
                    rootNode 
= treeVideo_server.AddRoot(mss, null);
                    
string sql2 = "select servername,ipaddress from serverconfig where sysname='" + mss + "'"

                    CMySql db2 
= new CMySql();
                    DataTable dt2 
= new DataTable();
                    dt2 
= db2.SelectDt(sql2);
                    
foreach (DataRow row2 in dt2.Rows)
                    {
                        
string name = row2["servername"].ToString();
                        IPAddress ip 
= IPAddress.Parse(row2["ipaddress"].ToString());
                        groupTreeNode 
= treeVideo_server.AddGroup(name, rootNode, ip);//带有IP地址属性

                        
string sql3 = "select channelname from channelconfig where servername='" + name + "'";
                        CMySql db3 
= new CMySql();
                        DataTable dt3 
= db3.SelectDt(sql3);

                        
foreach (DataRow row3 in dt3.Rows)
                        {
                            
foreach (DataColumn column3 in dt3.Columns)
                            {
                                
string mss3 = String.Format("{0}", row3[column3]);
                                channelNode 
= treeVideo_server.AddChannel(mss3, groupTreeNode);
                            }
                        }
                    }
            }

四、其他
循环访问 TreeView 控件的所有节点

private void PrintRecursive(TreeNode treeNode)
{
// Print the node.
System.Diagnostics.Debug.WriteLine(treeNode.Text);
MessageBox.Show(treeNode.Text);
// Print each node recursively.
foreach (TreeNode tn in treeNode.Nodes)
{
PrintRecursive(tn);
}
}
// Call the procedure using the TreeView.
private void CallRecursive(TreeView treeView)
{
// Print each node recursively.
TreeNodeCollection nodes = treeView.Nodes;
foreach (TreeNode n in nodes)
{
PrintRecursive(n);
}
}

转载于:https://www.cnblogs.com/goodyao/archive/2008/09/18/1293364.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值