删除Window应用程序中的树子节点

本文关键字:子节点 Window 应用程序 删除 | 更新日期: 2023-09-27 18:25:55

我正在开发一个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

谢谢。

删除Window应用程序中的树子节点

您可以使用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
    }

如果使用WindowsForms,则需要实现TreeView的自定义绘图,并对Click事件进行点击测试,以查看按钮是否被点击。TreeView并不是真正为添加按钮而设计的,所以你可能希望考虑另一种设计,比如在右菜单、工具栏和/或右键单击菜单上添加"删除"命令,因为这将大大减少工作量,更符合标准Windows控件的工作方式(例如,在Windows资源管理器的TreeView中,你看不到文件夹名称后面有一堆按钮)。