王鹏飞

Blog

Tutorial

About

CSharp

2021年4月11日

treeview树节点添加自定义按钮

这是我自定义的一个winform treeview组件,可以在每个树节点旁边添加自定义按钮,效果如下图所示。

WpfTreeview演示图

一.类介绍

这个组件由四个类组成:WpfTreeViewWpfTreeNodeButtonMenuButtonItem

类名 功能 继承
WpfTreeView 表示一棵树。 TreeView
WpfTreeNode 表示树节点。 TreeNode
ButtonMenu 表示树节点旁边的一组按钮。
ButtonItem 表示ButtonMenu中的一个按钮。

二.使用方法

public Form1()
{
    InitializeComponent();

    // 创建ButtonMenu
    ButtonMenu bm1 = new ButtonMenu(this.wpfTreeView1);
    ButtonMenu bm2 = new ButtonMenu(this.wpfTreeView1);

    // 给bm1添加按钮(ButtonItem)
    bm1.AddButtonItems(new ButtonItem(newImage, "New File", new ButtonItemClickEventHandler(newFileClick)));
    bm1.AddButtonItems(new ButtonItem(openImage, "Open File", new ButtonItemClickEventHandler(openFileClick)));
    // 给bm2添加按钮(ButtonItem)
    bm2.AddButtonItems(new ButtonItem(saveImage, "Save File", new ButtonItemClickEventHandler(saveFileClick)));
    bm2.AddButtonItems(new ButtonItem(deleteImage, "Delete File", new ButtonItemClickEventHandler(deleteFileClick)));
    bm2.AddButtonItems(new ButtonItem(copyImage, "Save File", new ButtonItemClickEventHandler(copyFileClick)));

    // 创建没有按钮的根节点
    WpfTreeNode root = this.wpfTreeView1.AddWPFTreeNode("WpfTreeView Demo");
    // 根节点添加节点1,并给节点1添加bm1(ButtonMenu,一组按钮)
    WpfTreeNode child1 =  root.AddWPFTreeNode("节点1", bm1);
    // 节点1添加节点1-1,并附带按钮bm2(ButtonMenu,一组按钮)
    WpfTreeNode child1_1 = child1.AddWPFTreeNode("节点1-1", bm2);
    // 添加没有按钮的子节点1,2,3
    child1_1.AddWPFTreeNode("1");
    child1_1.AddWPFTreeNode("2");
    child1_1.AddWPFTreeNode("3");
    // 继续添加节点
    child1.AddWPFTreeNode("节点1-2", bm2);
    WpfTreeNode child2 =  root.AddWPFTreeNode("节点2", bm1);
    child2.AddWPFTreeNode("节点2-1", bm2);
    WpfTreeNode child3 =  root.AddWPFTreeNode("节点3", bm1);
    child3.AddWPFTreeNode("节点2-1", bm2);

    // 展开
    this.wpfTreeView1.ExpandAll();
}

三.源码地址

github地址:https://github.com/pengfeiw/wpftreeview

(完)

留言(0


发表评论

邮箱地址不会被公开。*表示必填项