Доступ к узлам идет через Nodes. Сериализовать можно. Втроенной функции загрузки\сохранения у TreeView нет.
Я для этого использую таки функции:
public void SaveTree(TreeView tree, string filename)
{
using (Stream file = File.Open(filename, FileMode.Create))
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(file, tree.Nodes.Cast<TreeNode>().ToList());
}
}
public void LoadTree(TreeView tree, string filename)
{
using (Stream file = File.Open(filename, FileMode.Open))
{
BinaryFormatter bf = new BinaryFormatter();
IEnumerable<TreeNode> obj = (IEnumerable<TreeNode>)bf.Deserialize(file);
if (obj==null )
{
obj = new TreeNode[0];
}
if (obj.Count()>0)
{
TreeNode[] nodeList = (obj as IEnumerable<TreeNode>).ToArray();
tree.Nodes.AddRange(nodeList);
}
}
}