1、添加2个自定义控件:chartTC、TreeViewTc; 2、修复了一些bug,完善了功能;3、更新了gitignore,将bin等目录忽略;
This commit is contained in:
256
TreeViewTc/TreeViewTc2.cs
Normal file
256
TreeViewTc/TreeViewTc2.cs
Normal file
@ -0,0 +1,256 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
|
||||
//自定义封装控件:
|
||||
//(1)控件为成员【本代码使用此方法】:https://blog.csdn.net/wanlong360599336/article/details/7578447
|
||||
//(2)继承控件:https://blog.csdn.net/aoshilang2249/article/details/41252781?utm_medium=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-2.nonecase&depth_1-utm_source=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-2.nonecase
|
||||
namespace TreeViewTc
|
||||
{
|
||||
public delegate void Delegate1(string vinfo);//申明委托类型:用于进度条的更新
|
||||
|
||||
public partial class TreeViewTc2 : UserControl
|
||||
{
|
||||
public TreeViewTc2()
|
||||
{
|
||||
InitializeComponent();
|
||||
treeView1.ExpandAll();
|
||||
//treeView1.NodeMouseClick += new TreeNodeMouseClickEventHandler(treeView1_NodeMouseClick);
|
||||
|
||||
//this.treeView1.ContextMenuStrip = this.contextMenuStrip1;//这行代码有问题:在控件treeView1任何位置鼠标右击都会显示右键菜单
|
||||
}
|
||||
|
||||
void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
|
||||
{
|
||||
if (e.Button != MouseButtons.Right) return;
|
||||
if (e.Node.Parent == null || e.Node == null) return;
|
||||
treeView1.SelectedNode = e.Node;
|
||||
contextMenuStrip1.Show(treeView1, e.X, e.Y);
|
||||
}
|
||||
|
||||
public event Delegate1 PlotSifEvent;//申明事件
|
||||
private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
|
||||
{
|
||||
if (e.Button != MouseButtons.Left) return;
|
||||
if (e.Node.Parent == null || e.Node == null) return;
|
||||
treeView1.SelectedNode = e.Node;
|
||||
|
||||
string nodeName = treeView1.SelectedNode.Name;
|
||||
|
||||
if (PlotSifEvent != null)
|
||||
{
|
||||
PlotSifEvent(nodeName);
|
||||
}
|
||||
}
|
||||
|
||||
private void TreeViewTc2_Load(object sender, EventArgs e)
|
||||
{
|
||||
////实例化TreeNode类 TreeNode(string text,int imageIndex,int selectImageIndex)
|
||||
//TreeNode rootNode = new TreeNode("我的电脑"); //载入显示 选择显示
|
||||
//rootNode.Tag = "我的电脑"; //树节点数据
|
||||
//rootNode.Text = "我的电脑"; //树节点标签内容
|
||||
//treeView1.Nodes.Add(rootNode); //树中添加根目录
|
||||
|
||||
////显示MyDocuments(我的文档)结点
|
||||
//var myDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);//获取计算机我的文档文件夹
|
||||
//TreeNode DocNode = new TreeNode(myDocuments);
|
||||
//DocNode.Tag = "我的文档"; //设置结点名称
|
||||
//DocNode.Text = "我的文档";
|
||||
////DocNode.ImageIndex = IconIndexes.MyDocuments; //设置获取结点显示图片
|
||||
////DocNode.SelectedImageIndex = IconIndexes.MyDocuments; //设置选择显示图片
|
||||
//rootNode.Nodes.Add(DocNode); //rootNode目录下加载节点
|
||||
//DocNode.Nodes.Add("");
|
||||
|
||||
////循环遍历计算机所有逻辑驱动器名称(盘符)
|
||||
//foreach (string drive in Environment.GetLogicalDrives())
|
||||
//{
|
||||
// //实例化DriveInfo对象 命名空间System.IO
|
||||
// var dir = new DriveInfo(drive);
|
||||
// switch (dir.DriveType) //判断驱动器类型
|
||||
// {
|
||||
// case DriveType.Fixed: //仅取固定磁盘盘符 Removable-U盘
|
||||
// {
|
||||
// //Split仅获取盘符字母
|
||||
// TreeNode tNode = new TreeNode(dir.Name.Split(':')[0]);
|
||||
// tNode.Name = dir.Name;
|
||||
// tNode.Tag = tNode.Name;
|
||||
// //tNode.ImageIndex = IconIndexes.FixedDrive; //获取结点显示图片
|
||||
// //tNode.SelectedImageIndex = IconIndexes.FixedDrive; //选择显示图片
|
||||
// treeView1.Nodes.Add(tNode); //加载驱动节点
|
||||
// tNode.Nodes.Add("");
|
||||
// }
|
||||
// break;
|
||||
// }
|
||||
//}
|
||||
//rootNode.Expand();//展开树状视图
|
||||
|
||||
|
||||
//string path = @"D:\Desktop\0easySifProject";
|
||||
//Initialize(path);
|
||||
}
|
||||
|
||||
private string mPath;
|
||||
public void Initialize(string path)
|
||||
{
|
||||
string[] dics = Directory.GetDirectories(path);
|
||||
foreach (string dic in dics)
|
||||
{
|
||||
if (dic.Contains("sifTmp"))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
TreeNode subNode = new TreeNode(new DirectoryInfo(dic).Name);//实例化
|
||||
subNode.Name = new DirectoryInfo(dic).FullName;//完整目录
|
||||
subNode.Tag = subNode.Name;
|
||||
treeView1.Nodes.Add(subNode);
|
||||
subNode.Nodes.Add("");//加载空节点 实现+号
|
||||
}
|
||||
|
||||
mPath = path;
|
||||
}
|
||||
|
||||
public void reInitialize()
|
||||
{
|
||||
clearAll();
|
||||
Initialize(mPath);
|
||||
}
|
||||
|
||||
public void clearAll()
|
||||
{
|
||||
treeView1.Nodes.Clear();
|
||||
}
|
||||
|
||||
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void AddRootNode(string NodeName)
|
||||
{
|
||||
//添加根节点
|
||||
treeView1.Nodes.Add(NodeName.Trim());
|
||||
}
|
||||
|
||||
private void btnAddSonNode_Click(string SonNodeName)
|
||||
{
|
||||
if (treeView1.SelectedNode == null)
|
||||
{
|
||||
MessageBox.Show("请选择要添加子节点的节点!");
|
||||
return;
|
||||
}
|
||||
treeView1.SelectedNode.Nodes.Add(SonNodeName.Trim());
|
||||
}
|
||||
|
||||
private void btnDelete_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)
|
||||
{
|
||||
e.Node.Expand();
|
||||
}
|
||||
|
||||
private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
|
||||
{
|
||||
TreeViewItems.Add(e.Node);
|
||||
|
||||
}
|
||||
|
||||
public event Delegate1 DeleteEvent;//申明事件
|
||||
private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
string nodeName = treeView1.SelectedNode.Name;
|
||||
|
||||
if (MessageBox.Show("确认删除?", "此删除不可恢复", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||
{
|
||||
if (DeleteEvent != null)
|
||||
{
|
||||
DeleteEvent(nodeName);
|
||||
treeView1.SelectedNode.Remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void treeView1_MouseUp(object sender, MouseEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public event Delegate1 SaveAsEvent;//申明事件
|
||||
private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
string nodeName = treeView1.SelectedNode.Name;
|
||||
|
||||
if (SaveAsEvent != null)
|
||||
{
|
||||
SaveAsEvent(nodeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static class TreeViewItems
|
||||
{
|
||||
public static void Add(TreeNode treeNode)
|
||||
{
|
||||
//try..catch异常处理
|
||||
try
|
||||
{
|
||||
//判断"我的电脑"Tag 上面加载的该结点没指定其路径
|
||||
if (treeNode.Tag.ToString() != "我的电脑")
|
||||
{
|
||||
treeNode.Nodes.Clear();//清除空节点再加载子节点
|
||||
TreeNode tNode = treeNode;//获取选中\展开\折叠结点
|
||||
string path = tNode.Name;//路径
|
||||
|
||||
//获取"我的文档"路径
|
||||
if (treeNode.Tag.ToString() == "我的文档")
|
||||
{
|
||||
path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);//获取计算机我的文档文件夹
|
||||
}
|
||||
|
||||
//获取指定目录中的子目录名称并加载结点
|
||||
string[] dics = Directory.GetDirectories(path);
|
||||
foreach (string dic in dics)
|
||||
{
|
||||
TreeNode subNode = new TreeNode(new DirectoryInfo(dic).Name);//实例化
|
||||
subNode.Name = new DirectoryInfo(dic).FullName;//完整目录
|
||||
subNode.Tag = subNode.Name;
|
||||
//subNode.ImageIndex = IconIndexes.ClosedFolder;//获取节点显示图片
|
||||
//subNode.SelectedImageIndex = IconIndexes.OpenFolder;//选择节点显示图片
|
||||
tNode.Nodes.Add(subNode);
|
||||
subNode.Nodes.Add("");//加载空节点 实现+号
|
||||
}
|
||||
|
||||
//获取目录中的文件
|
||||
string[] files = Directory.GetFiles(path);
|
||||
foreach (string file in files)
|
||||
{
|
||||
string[] nameTmp = file.Split('\\');
|
||||
string name = nameTmp[nameTmp.Length - 1];
|
||||
|
||||
TreeNode subNode = new TreeNode(name);//实例化
|
||||
subNode.Name = file;//完整目录
|
||||
subNode.Tag = subNode.Name;
|
||||
//subNode.ImageIndex = IconIndexes.ClosedFolder;//获取节点显示图片
|
||||
//subNode.SelectedImageIndex = IconIndexes.OpenFolder;//选择节点显示图片
|
||||
tNode.Nodes.Add(subNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception msg)
|
||||
{
|
||||
MessageBox.Show(msg.Message);//异常处理
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user