PDA

View Full Version : سوال: ثابت ماندن نودهای اضافه شده به treeview هنگام اجرای مجدد برنامه



amir.yousefi
دوشنبه 17 شهریور 1393, 11:00 صبح
سلام
من برنامه ای نوشتم که با زدن یک دکمه،یک گره را به treeview اضافه کند.ولی وقتی برنامه را می بندم و دوباره باز می کنم گره هایی را که به treeview افزوده ام را نمی بینم!
شایان ذکر است که برای این برنامه ستاپ ساخته ام و در نسخه نصب شده آن روی رایانه ام، این کار را انجام می دهم نه در قسمت Debug!!!
متشکرم

aminmousavi
دوشنبه 17 شهریور 1393, 14:18 عصر
سلام دوست عزیز .
از همه چیز گفتید اما از ذخیره سازی نود های جدیدی که اضافه کردید نگفتید ، اصلا ذخیره میکنید اون ها رو جایی ؟
برای اینکار حتما باید اطلاعات نود های جدید رو در جایی (دیتابیس ، فایل ، ریجستری و ... ) ذخیره کنید

amir.yousefi
دوشنبه 17 شهریور 1393, 14:39 عصر
من یه نمونه برنامه براتون می فرستم.توی این برنامه کاربر بازدن دکمه نودهایی به درخت اضافه می کند ولی با باز و بسته شدن برنامه دیگر خبری از نود ها نیست!!!!
برای دانلود این برنامه لطفا اینجا (http://uplod.ir/b9186uqtjq31/WindowsFormsApplication1.rar.htm)کلیک کنید.

aminmousavi
دوشنبه 17 شهریور 1393, 14:44 عصر
دوست عزیز معلوم هست که برنامه رو باز و بسته کنید مقدار های قبلی براتون نمایش داده نمیشه !!!
همانطور که عرض کردم شما باید مقدار ها رو در زمان خروج از برنامه در جایی ذخیره سازی کننید و در FormLoad مقدار های قبلی رو ایجاد کنید !

amir.yousefi
دوشنبه 17 شهریور 1393, 14:55 عصر
میشه بهم بگید که چطوری باید این کارو انجام بدم؟؟؟
مچکرم

aminmousavi
دوشنبه 17 شهریور 1393, 15:21 عصر
public static 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 static void LoadTree(TreeView tree, string filename)
{
using (Stream file = File.Open(filename, FileMode.Open))
{
BinaryFormatter bf = new BinaryFormatter();
object obj = bf.Deserialize(file);


TreeNode[] nodeList = (obj as IEnumerable<TreeNode>).ToArray();
tree.Nodes.AddRange(nodeList);
}
}

aminmousavi
دوشنبه 17 شهریور 1393, 15:25 عصر
یوزینگ هاش هم اینها هست :

using System.IO;
using System.Runtime.Serialization.Formatters.Binary;