私はWindowsアプリケーションでツリービューコントロールを使用します。このアプリケーションでは、いくつかのノードを追加するボタンがあります(ルートノード&子ノード)。今度は、この構造を保存して、アプリケーションを再び開いたときに使用します。ツリービューからノードを保存する
どうすればいいですか?
私はWindowsアプリケーションでツリービューコントロールを使用します。このアプリケーションでは、いくつかのノードを追加するボタンがあります(ルートノード&子ノード)。今度は、この構造を保存して、アプリケーションを再び開いたときに使用します。ツリービューからノードを保存する
どうすればいいですか?
は、あなたはどちらかそれを保存することができ、あなたはバイト配列を持ったら出発点としてにBinaryFormatterを使用して、ツリーstructorは、
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 - 下記参照のこと
の1- Serilize
次の操作を行う必要がありますデータベースまたはファイルに保存します。3-ツリーを再作成するときは、保存されたデータがデータベースにある場合はそれをデセル化し、実際のバイトとストロークをbyte []配列で読み込むか、ファイルがロードされているファイルを読み込み、すべてのバイトをバイト配列に読み込みます。あなたは、実際のバイト数を得たとき
4-、あなたはコード
ここ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)
{
}
}
以前に、今、あなたはデータが得たserilizedた実際のルートノードが含まれます_listを見ることができます以下のとおりdeserielizeことができ、あなたはあなたの木を再構築することができます。