我的表单上有一个TextBox和一个TreeView,树视图显示了一个包含多个文本文件的目录。选择节点时,文本文档显示在TextBox中。我尝试在选择其他节点之前将工作保存在文本框中。我知道我可以使用以下代码获取所选节点的文件路径:
TreeNode CurrentNode = e.Node;
string fullpath = CurrentNode.FullPath;
我相信当我点击其他节点时,我可以使用树视图上的BeforeSelect事件来保存它。我只是不知道如何在不打开saveDialog的情况下保存文件。
答案 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();
}
}
}