在Window应用程序中删除Tree子节点

时间:2012-02-26 15:23:26

标签: c# winforms treeview

我正在开发一个Windows应用程序,我使用树视图显示日志,如下所示,此处节点是基于每日日志动态创建的

日志 -

+ 12-02-2001
+ 12-02-2001
+ 12-02-2001
+ 12-02-2001

但我想为每个节点添加删除按钮,如下所示

日志 -

+ 12-02-2001 Delete
+ 12-02-2001 Delete
+ 12-02-2001 Delete
+ 12-02-2001 Delete

感谢。

2 个答案:

答案 0 :(得分:1)

使用ContextMenuStrip可以更轻松。

http://msdn.microsoft.com/en-us/library/system.windows.forms.contextmenustrip.aspx

            //event handler for menuItem Click
    private void mnuDelNode_Click(object sender,EventArgs e)
    {
        //better confirm before delete using a message box 

        DeleteRecursive(listView.SelectedNode);
    }
    private void DeleteRecursive(TreeNode root)
    {
        //your delete logic here
    }

答案 1 :(得分:0)

如果您使用的是WindowsForms,则需要实现TreeView的custom drawing并对Click事件进行测试以查看是否单击了该按钮。 TreeView并非真正设计用于添加按钮,因此您可能希望考虑另一种设计,例如在右侧菜单,工具栏和/或右键菜单中添加删除命令,因为这样会显着减少工作和更符合标准Windows控件的工作方式(例如,在Windows资源管理器的TreeView中,您没有看到文件夹名称后面的一堆按钮)。