我有这段代码:
RemoveDirectory(path, true);
TreeNode nodetoremove = new TreeNode(path);
UpdateTreeview(nodetoremove);
例如在变量路径(字符串)中我有:root \ files 这是我删除的ftp服务器上的路径。 现在我想从treeView1中删除/删除节点名文件 在这种情况下,它只是root下的一个节点:root \ files 在我的treeView1结构中也构建了这样的主根被称为root并且在它下面所有的结构。
所以我在我的treeView根目录和文件下面。
可能会出现路径中的情况,例如:root \ files \ files1 \ files2 然后我想从treeView中删除节点文件2,这样根文件files1将只保留要删除的文件2.
所以我试着这样做:
TreeNode nodetoremove = new TreeNode(path);
UpdateTreeview(nodetoremove);
在UpdateTreeview里面我做了:
private void UpdateTreeview(TreeNode DirToRemove)
{
treeViewMS1.Nodes.Remove(DirToRemove);
}
但它不会删除我在treeView中看到它的节点。
一般情况下,我想删除路径中的节点作为treeView1中的节点。
这是我选择节点的方式:
private void treeViewMS1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
treeViewMS1.SelectedNode = treeViewMS1.GetNodeAt(e.X, e.Y);
if (treeViewMS1.SelectedNode != null)
{
menuStrip.Show(treeViewMS1, e.Location);
}
}
}
因此,如果我在treeView中选择了例如我选择的节点root \ test1 \ test2 \ test3点击了test3它应该从treeView中删除test3
如果我选择了节点test2,它应该删除test2和test3以及文件里面的内容。
如果我只选择了test1,那么将它全部移动到test1 \ test2 \ test3 它会删除它们,就像我在ftp服务器上描述的那样,但问题是将它从树视图中删除它。
规则通常是删除所选节点和所选节点内的每个子节点。