1、添加2个自定义控件:chartTC、TreeViewTc; 2、修复了一些bug,完善了功能;3、更新了gitignore,将bin等目录忽略;

This commit is contained in:
tangchao0503
2022-06-16 13:26:55 +08:00
parent b43227dc58
commit f36c5eaa39
50 changed files with 13043 additions and 3770 deletions

256
TreeViewTc/TreeViewTc2.cs Normal file
View 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);//异常处理
}
}
}
}