treeView1.SelectedNode = treeView1.Nodes[0];  //选中当前treeview控件的根节点为当前节点添加子节点:

   TreeNode tmp;

  tmp = new TreeNode("需要添加的内容");

   treeView1.SelectedNode.Nodes.Add(tmp);

   treeView1.SelectedNode = tmp;

  为父节点添加子节点:

    TreeNode tmp;

      tmp = new TreeNode("需添加的内容");

      treeView1.SelectedNode.Parent.Nodes.Add(tmp);

       treeView1.SelectedNode = tmp;

  设置当鼠标移开treeView控件时选中状态不消失

  treeView1.HideSelection = false;

  显示某一目录下的文件

    private void PaintTreeView(TreeView treeView, string fullPath)

 {

      try

      {

         treeView.Nodes.Clear();   //清空TreeView

      DirectoryInfo dirs = new DirectoryInfo(fullPath);  //获得程序所在路径的目录

    DirectoryInfo[] dir = dirs.GetDirectories();  //获取目录下文件夹选项

      FileInfo[] file = dirs.GetFiles();  //获取目录下文件选项

     int dircount = dir.Count();  //获取文件夹对象数量

     int filecount = file.Count();   //获取文件对象数量

      for (int i = 0; i < dircount; i++)   //循环文件夹

     {

        treeView.Nodes.Add(dir[i].Name);

       string pathNode = fullPath + "\\" + dir[i].Name;

      GetMultiNode(treeView.Nodes[i], pathNode);

     }

      for (int j = 0; j < filecount; j++)

     {

        treeView.Nodes.Add(file[j].Name);

    }

      }

   catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

}

 private bool GetMultiNode(TreeNode treeNode, string path)

      {

    if (Directory.Exists(path) == false)

    {

      return false;

   }

    DirectoryInfo dirs = new DirectoryInfo(path);   //获得程序所在路径的目录对象

   DirectoryInfo[] dir = dirs.GetDirectories();  //获得目录下文件夹对象

   FileInfo[] file = dirs.GetFiles();   //获得目录下文件对象

    int dircount = dir.Count();  //获取文件夹对象数量

     int filecount = file.Count();   //获取文件对象数量

    int sumcount = dircount + filecount;

    if (sumcount == 0)

    {

     return false;

    }

    for (int j = 0; j < dircount; j++)   //循环文件夹

   {

     treeNode.Nodes.Add(dir[j].Name);

    string pathNodeB = path + "\\" + dir[j].Name;

    GetMultiNode(treeNode.Nodes[j], pathNodeB);

   }

   for (int j = 0; j < filecount; j++)  //循环文件

   {

    treeNode.Nodes.Add(file[j].Name);

     }

    return true;

   }

  判断不同层次的节点,显示不同的右键内容:

     private void treeView1_MouseDown(object sender, MouseEventArgs e)

    {

       TreeNode temp = treeView1.GetNodeAt(e.X, e.Y);   //获取当前鼠标点击的位置

     treeView1.LabelEdit = false;   //设置当前不可编辑

    if (temp != null)

     {

         treeView1.SelectedNode = temp;

        temp.ToolTipText = "右键可编辑";  //鼠标放在节点位置,提示右键可编辑

       if (temp.Level == 0)

       {

        treeView1.ContextMenuStrip = 模板分类管理;

            //绑定不同的右键选项,ContextMenuStrip名字模板分类管理

          }

       else

       treeView1.ContextMenuStrip = 模板管理;

      }

     else

      {

          treeView1.SelectedNode = null;

        treeView1.ContextMenuStrip = null;

      return;

     }

    }

TreeView控件使用的更多相关文章

  1. 基于Treeview控件遍历本地磁盘

    一.前言 Treeview控件常用于遍历本地文件信息,通常与Datagridview与ImageList搭配.ImageList控件用于提供小图片给TreeView控件,DatagridView通常显 ...

  2. Win32中TreeView控件的使用方法,类似于资源管理器中文件树形显示方式

    首先是头文件,内容如下: #include <tchar.h> #include "..\CommonFiles\CmnHdr.h" #include <Wind ...

  3. asp TreeView控件的使用

    相对于之前发过一个TreeView控件的使用方法 本次利用js操作,页面无刷新,性能提高 Css编码可能时我的模板页样式被继承下来,导致页面变乱,不需要的可以去掉 前台 <style> . ...

  4. C#TreeView控件遍历文件夹下所有子文件夹以及文件

    一直对递归的理解不深刻,有时候觉得很简单,可是用起来总会出错.这里需要在TreeView控件里显示一个文件夹下的所有目录以及文件,毫无意外的需要用到递归. 一开始,想到用递归写一个生成每一个节点(Tr ...

  5. 利用深搜和宽搜两种算法解决TreeView控件加载文件的问题。

    利用TreeView控件加载文件,必须遍历处所有的文件和文件夹. 深搜算法用到了递归. using System; using System.Collections.Generic; using Sy ...

  6. 将treeview控件内容导出图片

    项目中有一项需求,需要将项目中的treeview控件展示的树状结构直接导成一张图片.网上方法很多,但很多都是屏幕截屏,我的解决思路是新建一个用户控件,将主窗体的Treeview的数据传给用户控件(不要 ...

  7. 给C#的treeview控件的部分节点添加checkbox

    一.先初始化treeview this.treeView1.CheckBoxes = true; this.treeView1.ShowLines = false; this.treeView1.Dr ...

  8. 部门树形结构,使用Treeview控件显示部门

    部门树形结构.设计张部门表用于存储部门编码.名称.上级部门id,使用Treeview控件显示部门树,并实现部门增删改.移动.折叠等功能.特别提示,部门有层级关系,可用donetbar的adtree控件 ...

  9. C#Winform中treeView控件使用总结

    1.如何展开结点时改变图标(注意:不是选中时) 要在目录中使用图标首先要加入一个控件ImageList(命名为imageList1),然后可以按图片的index或名称引用图片. 然后需要在TreeVi ...

随机推荐

  1. css 清除浮动 clear

    .clearfix{ zoom:1;/*对于老版本的IE进行兼容的设置*/ } .clearfix:after{ content:""; display:block; visibi ...

  2. CentOS6.5安装Tomcat

    安装说明 安装环境:CentOS-6.4 安装方式:源码安装 软件:apache-tomcat-7.0.56.tar.gz 下载地址:http://tomcat.apache.org/download ...

  3. C++基础_总结

    (1)多态性都有哪些?(静态和动态,然后分别叙述了一下虚函数和函数重载) 多态分为两种:静态和动态.静态主要包括函数重载和模板:动态主要是依靠虚函数实现的. 静态联编:重载函数不加virtual关键字 ...

  4. Surface Shader简单向导

    Surface Shader 表面着色器 描述 当你的Material要处理光照,则一般使用Surface Shader.Surface Shader隐藏了光照的计算,你只需要在surf函数里设置好反 ...

  5. Mint linux 自定义上下文菜单实现ZIP压缩文件无乱码解压

    1. 前提条件 我的Mint Linux 是Thunar文件管理器(默认的). 2. 配置自定义动作 打开Thunar文件管理器,点击菜单“编辑”=>“配置自定义动作”.点击“+”添加一个新的. ...

  6. solve the problem of 'java web project cannot display verification code'

    my java code of the function: package com.util; import java.awt.Color; import java.awt.Font; import ...

  7. PMO是什么?如何与其他部门协作配合提高项目成功率?

    许多公司里,有许多IT项目,特别是在软件公司里,许多开发团队并没有运用灵敏开发来进行项目办理.在某些状况下,尤其在一些公司里IT不是很受注重的,只能作为一个事务支撑部分,灵敏团队面对的首要疑问,是缺少 ...

  8. php后台增加删除修改跳转页面

    第一步 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3. ...

  9. Android开发学习之路-Volley源码解析

    从简单的StringRequest入手看看Volley的工作机制. 先简单说下Volley的用法: ① 获取一个RequestQueue mRequestQueue = Volley.newReque ...

  10. 使用Ldoc给Lua生成文档

    Ldoc介绍 LDoc是一个Lua的文档生成工具,过去,比较常用的Lua生成文档的工具是LuaDoc,可惜作者自从2008年之后就再也没有发布过新的版本了,说明作者基本上已经放弃维护了.而LDoc则是 ...