• TreeView


                //可手动添加根节点和子节点,也可代码添加
                //两个根节点
                TreeNode tn1 = treeView1.Nodes.Add("省份");
                TreeNode tn2 = treeView1.Nodes.Add("市区");
                //三个子节点,用于显示省份
                TreeNode tn01 = new TreeNode("河南省");
                TreeNode tn02 = new TreeNode("江苏省");
                TreeNode tn03 = new TreeNode("浙江省");
                //三个子节点,用于显示市区
                TreeNode tn04 = new TreeNode("郑州市");
                TreeNode tn05 = new TreeNode("南京市");
                TreeNode tn06 = new TreeNode("杭州市");
                tn1.Nodes.Add(tn01);
                tn1.Nodes.Add(tn02);
                tn1.Nodes.Add(tn03);
                tn2.Nodes.Add(tn04);
                tn2.Nodes.Add(tn05);
                tn2.Nodes.Add(tn06);

     private void Form1_Load(object sender, EventArgs e)
            {
                //可手动添加根节点和子节点,也可代码添加
                //两个根节点
                TreeNode tn1 = treeView1.Nodes.Add("省份");
                TreeNode tn2 = treeView1.Nodes.Add("市区");
                //三个子节点,用于显示省份
                TreeNode tn01 = new TreeNode("河南省");
                TreeNode tn02 = new TreeNode("江苏省");
                TreeNode tn03 = new TreeNode("浙江省");
                //三个子节点,用于显示市区
                TreeNode tn04 = new TreeNode("郑州市");
                TreeNode tn05 = new TreeNode("南京市");
                TreeNode tn06 = new TreeNode("杭州市");
                tn1.Nodes.Add(tn01);
                tn1.Nodes.Add(tn02);
                tn1.Nodes.Add(tn03);
                tn2.Nodes.Add(tn04);
                tn2.Nodes.Add(tn05);
                tn2.Nodes.Add(tn06);
                //给节点添加图标
                imageList1.Images.Add(Image.FromFile(@"F:\图片\Pictures\立体图片\Fish06.jpg"));
                imageList1.Images.Add(Image.FromFile(@"F:\360wallpaper_dt.jpg"));
                treeView1.ImageList = imageList1;
                treeView1.ImageIndex = 0;
                tn01.ImageIndex = 1;
                //选中后换图标
                treeView1.SelectedImageIndex = 1;
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
    
                treeView1.Nodes.Remove(treeView1.SelectedNode);
            }
    
            private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
            {
                label2.Text = e.Node.Text;
            }

    将数据库中的数据递归加载到TreeView上

    class Area
        {
            public int AreaID
            {
                get; set;
            }
            public string AreaName
            {
                get; set;
            }
            public int AreadPID
            {
                get; set;
            }
        }
        class SqlHelper
        {
            private static readonly  string conStr = System.Configuration.ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;
            /// <summary>
            /// 执行SQL语句返回一个DataReader
            /// 当返回DataReader的时候 注意
            /// 1、Connection不能关闭
            /// 2、DataReader不能关闭
            /// 3、Command对象执行ExecuteReader()方法的时候传递一个参数ConmandBehavior.CloseConnection
            /// </summary>
            /// <param name="sqlCmd"></param>
            /// <param name="pms"></param>
            /// <returns></returns>
            public static SqlDataReader ExecuteReader(string sqlCmd, params SqlParameter[] pms)
            {
                SqlConnection con=new SqlConnection(conStr);
                using (SqlCommand cmd=new SqlCommand(sqlCmd,con))
                {
                    if (pms != null)
                    {
                        cmd.Parameters.AddRange(pms);
                    }con.Open();
                    SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    return reader;
                }
            }
            public static int ExecuteNonQuery(string sql,params SqlParameter[]pms)
            {
                using(SqlConnection con=new SqlConnection(conStr))
                {
                    using(SqlCommand cmd=new SqlCommand(sql,con))
                    {
                        if(pms!=null)
                        {
                            cmd.Parameters.AddRange(pms);
                        }
                        con.Open();
                        return cmd.ExecuteNonQuery();
                    }
                }
            }
        }
    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                List<Area> list = GetDataByParentID(0);
                LoadDataToTree(treeView1.Nodes,list);
            }
    
            private void LoadDataToTree(TreeNodeCollection treeNodeCollection, List<Area> list)
            {
                foreach (Area area in list)
                {
                    TreeNode node = treeNodeCollection.Add(area.AreaName);
                    //记录当前区域的ID
                    node.Tag = area.AreaID;
                    //设置让TreeView中每个节点单击右键时显示右键菜单
                    node.ContextMenuStrip = deletecontextMenuStrip1;
                    //获取当前ID对应的所有子节点
                    List<Area> listChild = GetDataByParentID(area.AreaID);
                    LoadDataToTree(node.Nodes,listChild);
                }
            }
            /// <summary>
            /// 根据PID获取该区域下面的所有子ID
            /// </summary>
            /// <param name="pid"></param>
            /// <returns></returns>
            private List<Area> GetDataByParentID(int pid)
            {
                List<Area> list=new List<Area>();
                string selectCmd = "select * from City where AreaPID=@pid";
                using (SqlDataReader reader = SqlHelper.ExecuteReader(selectCmd, new SqlParameter("@pid", pid)))
                {
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            Area model=new Area();
                            model.AreaID = reader.GetInt32(0);
                            model.AreaName = reader.GetString(1);
                            model.AreadPID = reader.GetInt32(2);
                            list.Add(model);
                        }
                    }
                }
                return list;
            }
            private void button2_Click(object sender, EventArgs e)
            {
                if (treeView1.SelectedNode != null)
                {
                    int areaID = (int) treeView1.SelectedNode.Tag;
                    DeleteByAreaID(areaID);
                    treeView1.SelectedNode.Remove();
                }
            }
            private void DeleteByAreaID(int areaID)
            {
                List<Area> list=GetDataByParentID(areaID);
                foreach(Area item in list)
                {
                    DeleteByAreaID(item.AreaID);
                }
                string sqlCommand="delete from City where AreaID=@id";
                SqlParameter pms=new SqlParameter("@id",areaID);
                SqlHelper.ExecuteNonQuery(sqlCommand,pms);
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
            }
    
            private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
            {
                //获得选中节点
                this.treeView1.SelectedNode = e.Node;
            }
    
            private void button2_Click_1(object sender, EventArgs e)
            {
                
            }
    
            private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                if (treeView1.SelectedNode != null)
                {
                    int areaID = (int)treeView1.SelectedNode.Tag;
                    DeleteByAreaID(areaID);
                    treeView1.SelectedNode.Remove();
                }
            }
    
           
        }

    将XML中的文件节点绑定到TreeView中

    <?xml version="1.0"  ?>
    <食物>
        <水果>
        <苹果>20元</苹果>
        </水果>
        <水果>
        <橘子>15元</橘子>
        </水果>
    </食物>
    using System.IO;//引用与输入输出文件流有关的命名空间
    using System.Xml;//引用与XML有关的命名空间
    
    namespace BindingXML
    {
        public partial class Frm_Main : Form
        {
            public Frm_Main()
            {
                InitializeComponent();
            }                                                                                          
    
            private XmlDocument NexusDocument = new XmlDataDocument();//定义一个XML文档对象
            private void BindingXML_Load(object sender, EventArgs e)
            {
                string filePath = "NexusPoint.xml";//定义一个变量保存XML文件的路径
                if(File.Exists(filePath))//当在指定路径下存在该文件时
                {
                    NexusDocument.Load(filePath);//加载该路径下的XML文件
                    RecursionTreeControl(NexusDocument.DocumentElement,treeView1.Nodes);//将加载完成的XML文件显示在TreeView控件中
                    treeView1.ExpandAll();//展开TreeView控件中的所有项
                }
            }
             /// <summary>
             /// RecursionTreeControl:表示将XML文件的内容显示在TreeView控件中
             /// </summary>
             /// <param name="xmlNode">将要加载的XML文件中的节点元素</param>
             /// <param name="nodes">将要加载的XML文件中的节点集合</param>
            private void RecursionTreeControl(XmlNode xmlNode,TreeNodeCollection nodes)
            {
                foreach(XmlNode node in xmlNode.ChildNodes)//循环遍历当前元素的子元素集合
                {
                    string temp = (node.Value != null ? node.Value : (node.Attributes != null && node.Attributes.Count > 0) ? node.Attributes[0].Value : node.Name);//表示TreeNode节点的文本内容
                    TreeNode new_child = new TreeNode(temp);//定义一个TreeNode节点对象
                    nodes.Add(new_child);//向当前TreeNodeCollection集合中添加当前节点
                    RecursionTreeControl(node,new_child.Nodes);//调用本方法进行递归
                }
            }
        }
    }

    http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=ZH-CN&k=k(TREEVIEW);k(TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERSION%3dV4.0%22);k(DevLang-CSHARP)&rd=true

  • 相关阅读:
    ztree——Cannot read property 'init' of undefined解决方案
    vue——手写swiper子组件,pagination不显示、轮播无效问题解决
    angularJS——数据更新了但是view(视图)层却未更新问题及解决方法
    vue——router.js动态注册组件
    js——ev || window.event,event.srcElement || event.target
    vue——keepAlive第一次无效问题及解决方法
    vue——列表页进详情页,第一次很慢,第二次就很快问题及解决方法
    vue——按需引入elementUI(以时间选择器为例)
    vue——预先指定高度,进行懒加载
    sql 分页查询
  • 原文地址:https://www.cnblogs.com/chenyongblog/p/3078509.html
Copyright © 2020-2023  润新知