保存Treeview选中节点到xml中,在窗体加载时,显示上次关闭时的状态
public class TreeNodes
{
private string path;
public string Path
{
get { return path; }
set { path = value; }
}
public void Save()
{
try
{
XmlSerializer xs = new XmlSerializer(typeof(TreeNodes));
Stream stream = new FileStream("tree.xml",
FileMode.Create, FileAccess.Write, FileShare.Read);
xs.Serialize(stream,this);
stream.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
public TreeNodes Load()
{
try
{
if (File.Exists("tree.xml"))
{
XmlSerializer xs = new XmlSerializer(typeof(TreeNodes));
Stream stream = new FileStream("tree.xml", FileMode.Open);
var v = xs.Deserialize(stream) as TreeNodes;
stream.Close();
return v;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return new TreeNodes();
}
}
tn = tn.Load();
string path = tn.Path;
if (path == null || path.Trim().Length < 1)
{
return;
}
string[] pathArray = path.Split(new char[] { '\\' }, StringSplitOptions.RemoveEmptyEntries);
var nodes = treeView1.Nodes;
foreach (var item in pathArray)
{
bool isSelected = false;
for (int i = 0; i < nodes.Count; i++)
{
if (nodes[i].Text.TrimEnd('\\') == item)
{
nodes[i].Expand();
treeView1.SelectedNode = nodes[i];
nodes = nodes[i].Nodes;
isSelected = true;
break;
}
}
if (isSelected != true)
{
return;
}
}