• Winform- TreeView的使用例子


      自动递归生成树,点击树节点的事件在treeView1_AfterSelect里编写,不多说了,直接上代码,备注在这里一下

      

        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            public DataSet ds = null;
    
            private void button1_Click(object sender, EventArgs e)
            {
                tv_bind();
            }
    
            public void tv_bind()
            {
    
                //从数据库中读取分类信息至DataSet
                //绑定前先清空数据集
                treeView1.Nodes.Clear();
    
                ds = DbHelperSQL.Query("select * from sys_rtxmenus");
                //如果数据库中有信息那么构造树,否则提示无接点
                if (ds.Tables[0].Rows.Count > 0)
                {
                    //清除树节点,从根添加树
                    treeView1.Nodes.Clear();
                    Add_tree(0, (TreeNode)null);
                }
                else
                {
                    treeView1.Nodes.Clear();
                    TreeNode node = new TreeNode();
                    node.Text = "暂无任何分类信息";
                    treeView1.Nodes.Add(node);
                }
    
            }
    
            //递归树
            private void Add_tree(int pid, TreeNode pnode)
            {
                DataRow[] dr = ds.Tables[0].Select("pid=" + pid);
                foreach (DataRow row in dr)
                {
                    TreeNode node = new TreeNode();
                    if (pnode == null)
                    {
                        node.Text = row["menuname"].ToString();
                        node.Tag = row["id"].ToString();
                        node.ToolTipText = row["menuurl"].ToString();
                        treeView1.Nodes.Add(node);
                        Add_tree(int.Parse(row["id"].ToString()), node);
                    }
                    else
                    {
                        node.Text = row["menuname"].ToString();
                        node.Tag = row["id"].ToString();
                        node.ToolTipText = row["menuurl"].ToString();
                        pnode.Nodes.Add(node);
                        Add_tree(int.Parse(row["id"].ToString()), node);
                    }
                }
            }
    
            //按扭的点击事件
            private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
            {
                // 设置显示图标的变换
                if (null == e.Node.FirstNode)
                {
                    e.Node.ImageIndex = 1;
                    e.Node.SelectedImageIndex = 0;
                }
                // 打开新的窗口,每一级对应一类窗口
                if (e.Node != null && null == e.Node.FirstNode)
                {
                    string tag = e.Node.Tag.ToString();
                    string name = e.Node.Text.ToString();
    
    
                    switch (name)
                    {
                        case "公告类型":
                            MessageBox.Show("打开公告类型");
                            break;
                        case "公告列表":
                            MessageBox.Show("打开公告列表");
                            break;
    
                    }
                }
            }
    
    
        }
  • 相关阅读:
    break语句和continue语句
    switch注意事项
    运算符优先级
    混合赋值运算符做算数运算时不改变自身数据类型
    arpspoof+ettercap嗅探局域网HTTP/HTTPS账号密码
    linux上chrome、vlc等程序root不能运行的解决办法
    kalilinux、parrotsecos没有声音
    linux相关文章链接
    live kalilinux能保存文件和设置
    渗透测试文章链接
  • 原文地址:https://www.cnblogs.com/cxeye/p/4837681.html
Copyright © 2020-2023  润新知