C# 有没有办法从系统自带的资源管理器中把文件拖动到treeview上生成一个节点

如题所述

首先在WinForm窗体中添加一个MenuStrip控件和TreeView控件,根据爱好把控件布局好后,在窗体的加载事件中(根据自己的情况而定)添加如下的代码:
/// <summary>
/// 窗体加载时事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FrmServerManager_Load(object sender, EventArgs e)
{
   treeView1.Nodes.Clear();//清空导航菜单
//调用GetMenu方法,将menuStrip1控件的子菜单添加到treeView1控件中
GetMenu(treeView1, menuStrip1);
this.treeView1.ExpandAll();
  }
然后自定义GetMenu(treeView1, menuStrip1)方法。
代码如下:
#region 将MenuStrip控件中的信息添加到TreeView控件中
/// <summary>
/// 将MenuStrip控件中的信息添加到TreeView控件中
/// </summary>
/// <param name="treeV">TreeView控件</param>
/// <param name="MenuS">MenuStrip控件</param>
public void GetMenu(TreeView treeV, MenuStrip MenuS)
{
for (int i = 0; i < MenuS.Items.Count; i++) //遍历MenuStrip组件中的一级菜单项
{
//将一级菜单项的名称添加到TreeView组件的根节点中,并设置当前节点的子节点newNode1
TreeNode newNode1 = treeV.Nodes.Add(MenuS.Items[i].Text);
//将当前菜单项的所有相关信息存入到ToolStripDropDownItem对象中
ToolStripDropDownItem newmenu = (ToolStripDropDownItem)MenuS.Items[i];
//判断当前菜单项中是否有二级菜单项
if (newmenu.HasDropDownItems && newmenu.DropDownItems.Count > 0)
for (int j = 0; j < newmenu.DropDownItems.Count; j++) //遍历二级菜单项
{
//将二级菜单名称添加到TreeView组件的子节点newNode1中,并设置当前节点的子节点newNode2
TreeNode newNode2 = newNode1.Nodes.Add(newmenu.DropDownItems[j].Text);
//将当前菜单项的所有相关信息存入到ToolStripDropDownItem对象中
ToolStripDropDownItem newmenu2 = (ToolStripDropDownItem)newmenu.DropDownItems[j];
//判断二级菜单项中是否有三级菜单项
if (newmenu2.HasDropDownItems && newmenu2.DropDownItems.Count > 0)
for (int p = 0; p < newmenu2.DropDownItems.Count; p++) //遍历三级菜单项
//将三级菜单名称添加到TreeView组件的子节点newNode2中
newNode2.Nodes.Add(newmenu2.DropDownItems[p].Text);
}
}
}
#endregion
温馨提示:内容为网友见解,仅供参考
无其他回答

C#怎么将FTP文件的目录填充到treeview
这是绑定test文件夹下边的所有文件,要绑定文件夹也是类似的,相信你能举一反三的吧。我就不写了。给分~~~ ^-^

用c#做资源管理器,treeView绑定要花5分钟,正常吗?
如果你是遍历盘符下面的文件的话!应该还是算正常!系统目录下面的system32文件夹下有几万个文件!要一个一个找是很慢的!你有没有见过那个杀毒软件全盘扫描的时候一下子就扫完的!哪个不花个个把小时的!不过好像可以使用多线程来优化效率!思考思考!

C#本人菜鸟,想在窗体中放一个treeview,然后在这个中添加链接,链接到文 ...
\/\/ 加载指定目录下的文件目录 public void loadDirectory(string path,TreeNode tNode){ string[] directorys = Directory.GetDirectories(path); \/\/获取选中treeview节点的子目录 foreach (string item in directorys){ if ((File.GetAttributes(item) & FileAttributes.Hidden)!= FileAttributes.Hidde...

C#中怎样使控件TreeView中某个节点不可点?就像按钮灰掉不可点一样?
首先,C#中的TreeView的节点TreeNode没有像Button按钮一样的Enabled的属性来更改按钮是否可用,要想实现使TreeNode节点具有类似的功能,可以遵循下列步骤:1.程序加载时(按需)设置特定节点的前景颜色,一般都是根节点具备不可点击的条件,代码例子:treeView1.Nodes[0].ForeColor = Color.Gray; 2.注册...

高分在线等:C#中如何给treeview控件上的节点前添加图片,静态的图片就...
2. 添加图片到树形控件的代码如下,我为了演示,在formload事件中添加了几个节点,你根据你的实际,不用管。private void Form1_Load(object sender, EventArgs e){ \/\/下面初始化树形控件,给其添加一些节点 treeView1.Nodes.Add("节点1");treeView1.Nodes.Add("节点2");treeView1.Nodes[0]....

C#编程题:在WinForm 中实现类似于Windows 资源管理器的功能,左边有目录...
\/\/ 添加驱动、文件夹 \/\/这个方法就是资源管理器的核心代码,主要就是进行递归。递归的意思不知道你明白不,若是你明白,这个方法很简单,你就知道如何做了。若是不知道,先看看递归的知识 private void AddDriverInfo(TreeNode root){ DriveInfo[] driveInfos = DriveInfo.GetDrives();foreach (...

c#的winform TreeView控件中,展开不同的节点,右边显示不同的内容,该...
(5)当双击TreeView控件中的节点时,如果节点是文件,则判断文件类型;如果节点是文本格式文件,则将文本内容加载到界面上。示例代码9-18是TextReader中与TreeView控件有关的代码,其中LoadLogicDrive()方法将系统中的逻辑分区信息加载到TreeView控件中,LoadDicTree()方法则将选中目录中的子目录和文件加载到该目录节点下。

vb.net中TreeView控件的使用
在中 TreeView(树型结构)控件是显示节点(Node)对象的级层结构 它通常用于显示一些有等级结构的信息 我们最为熟悉的就是Windows资源管理器左边显示文件和文件夹的窗口 在工具箱中 TreeView 控件的图标如下图一所示 TreeView控件的每个节点(Node对象)包含了一个标签和可选的点位图 每个节点又可能包含有...

c# 我想改变treeview中某个结点的颜色(没有任何操作的情况下),运行后...
您要指定一个节点 treeView1.nodes[X自己写下标].BackColor= Color.Gray;

C#如何实现资源管理器中鼠标经过变色的功能
用什么控件都行.事件是一样的.当鼠标经过该控件的时候在 mouseEnter事件中写 控件.BackColor = Color.Red\/\/红色 或者某项 控件.Item[项] 或 控件.Row[行]当鼠标移除该控件的时候 你需要在mouseLeave事件中把颜色改回来.点击事件都是Click ,但tree里面有很多节点.Nodes里编辑节点 ...

相似回答