开发者

Save nodes from a treeview

I use a treeview control in my windows application. In this application, there is a button that adds several nodes (root node & child node). Now I want to save this structure and use it when I open th开发者_如何学Pythone application again.

How do I can do this?


You need to do following things

1- Serilize your tree structor using BinaryFormatter , as a starting point see below

private Byte[] SerilizeQueryFilters()
    {
        BinaryFormatter bf = new BinaryFormatter();

        TreeNodeCollection tnc = treeView1.Nodes;

        List<TreeNode> list = new List<TreeNode>();
        list.Add(treeView1.Nodes[0]);


        using (MemoryStream ms = new MemoryStream())
        {
            bf.Serialize(ms, list);
            return ms.GetBuffer();

        }


    }

2- Once you got the Byte array , you can either save it to the database or in a file.

3- When you want to re-create the tree , you need to deserilize your saved data if it is in the databse , read the actual bytes and strore in a byte[] array or if it is in the file load the file and read all bytes into a Byte Array.

4- When you got the actual bytes , you can deserielize as per below code

 private void DeSerilizeQueryFilters(byte[] items)
    {
        BinaryFormatter bf = new BinaryFormatter();

        List<TreeNode> _list = new List<TreeNode>();

        try
        {
            using (MemoryStream ms = new MemoryStream())
            {
                ms.Write(items, 0, items.Length);
                ms.Position = 0;

                _list = bf.Deserialize(ms) as List<TreeNode>;



            }


        }
        catch (Exception ex)
        {
        }




    }

here you can see the _list will contain the actual root node which was serilized earlier , now you got the data , you can re-construct your tree.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜