Treeview在节点选择上保存文档

时间:2016-06-25 06:33:25

标签: c# winforms save treeview

我的表单上有一个TextBox和一个TreeView,树视图显示了一个包含多个文本文件的目录。选择节点时,文本文档显示在TextBox中。我尝试在选择其他节点之前将工作保存在文本框中。我知道我可以使用以下代码获取所选节点的文件路径:

TreeNode CurrentNode = e.Node; string fullpath = CurrentNode.FullPath;

我相信当我点击其他节点时,我可以使用树视图上的BeforeSelect事件来保存它。我只是不知道如何在不打开saveDialog的情况下保存文件。

1 个答案:

答案 0 :(得分:0)

在表单中跟踪当前选定的TreeNode和之前选择的TreeNode

TreeNode _priorNode, _currentNode;

当有人更改FullPath中的选择时,您要访问以前选择的节点TreeView以保存更改。当用户更改选择时,AfterSelect事件将触发。在这种情况下,您可以检查以前选择的节点并将更改保存在TextBox

public partial class Form1 : Form
{
    // form level variables to hold current node and prior node
    TreeNode _priorNode, _currentNode;

    public Form1()
    {
        InitializeComponent();
    }

    // stores the prior node (based on current node) after node select    
    private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
    {
        String textToSave;
        String fileName;
        System.IO.StreamWriter writer;

        if (_currentNode != null)
        {
            _priorNode = _currentNode;
        }
        _currentNode = e.Node;
        if (_priorNode != null)
        {
            textToSave = textBox1.Text;
            fileName = _priorNode.FullPath;
            writer = new System.IO.StreamWriter(fileName);
            writer.Write(textToSave);
            writer.Close();
        }
    }
}