PDA

View Full Version : مشكل در نشان دادن آدرس درtxtbox



maryam82
شنبه 06 مهر 1387, 09:06 صبح
با سلام خدمت دوستان عزيز
من يك txtbox دارم با يك كليد Browes با استفاه از كليد Browes من يك آدرس انتخاب مي كنم و آدرس تو txtbox نشان داده ميشه. حال مي خوام وقتي كه كلا از برنامه خارج شدمو بعد دوباره برنامه را run كردم آخرين آدرسي كه انتخاب كرده بودم تو txtbox نشون داده بشه؟

shytonak
شنبه 06 مهر 1387, 09:53 صبح
باید آدرس رو یه جا ذخیره کنی مثلا رجیستر

maryam82
شنبه 06 مهر 1387, 12:32 عصر
باید آدرس رو یه جا ذخیره کنی مثلا رجیستر

خوب چطوري ميشه اين كاررو انجام داد؟
اگه ميشه بيشتر توضيح بديد

shytonak
شنبه 06 مهر 1387, 13:04 عصر
ببین ابتدا تو رجیستری یه کلید ایجاد کن و مقدار کلید رو برابر با مقدار آدرس قرار بده.بعد در قسمت لود فرم بیا این مقدار رو از رجیستری بگیر و نمایش بده.اینطوری با خاموش شدن سیستم هم مقدار آدرس از بین نمیره.

SMRAH1
شنبه 06 مهر 1387, 15:12 عصر
حداقل چهار راه به نظر من می رسد:

1) ذخیره در رجیستری : که مستلزم ساخت یک کلید،ایجاد مقدار و ..در کل کار با رجیستری است.
2) ذخیره در Setting که خوده دات نت در اختیار می گذارد (در این رابطه خیلی اطلاعات ندارم و اصلا تا حالا از این روش استفاده نکردم).
3) ذخیره داده ها در کلاسهای Setting که برای همین مورد نوشه شده است.
4) استفاده از Resource خوده برنامه.البته این مورد را به شکل تفضیلی توضیح می دهم.

برای این مرحله دو کار باید انجام شود.اول اینکه در جای مناسب،داده ها خوانده شود(مثلا load فرم یا تابع main و ...) و دوم در جای مناسب داده ها نوشته شود (مثل خروج از برنامه یا بستن فرم و..).

فرض کنید در برنامه خود دو متغیر از نوع point دارید با نامهای point1 و point2 که می خواهید در برنامه ذخیره شوند.برای ذخیره آنها می توانید از روال زیر کمک بگیرید:


ResourceWriter rw = new ResourceWriter("1.resources");
rw.AddResource("P1", point1);
rw.AddResource("P2", point2);
rw.Generate();
rw.Close();در این برنامه از کلاس ResourceWriter (که در دانت نت موجود است) استفاده شده و یک resource با نام 1.resources باز شده است (این resource در واقع یک فایل با همین نام در کنار فایل برنامه است ،شما می توانید هر نامی را انتخاب کنید).سپس با استفاده از متد AddResource،شی point1 را با نام P1 و شی point2 را با نام P2 در این resource ذخیره می کند.با دستور Generate اقدام به ذخیره این resource ها در فایل کرده و در نهایت این resource را باید بست.

برای خواندن هم می توانید از کد زیر استفاده کنید:


//Read Position from Resource
try
{
ResourceSet rs;
rs = new ResourceSet("1.resources");
point1 = (Point)rs.GetObject("P1", false);
point2 = (Point)rs.GetObject("P2", false);
rs.Close();
}
catch (Exception)
{
point1 = new Point(100, 100);
point2 = new Point(20, 200);
}در اینجا هم توسط ResourceSet ،ابتدا resource باز شده (با همان نامی که قبلا ذخیره شده) و توسط GetObject با دریافت نام هر منبع(در اینجا P1 و P2)،می تونید به اطلاعات تون دسترسی داشته باشید.البته این اطلاعات از نوع object است که باید تبدیل نوع مناسب (در اینجا به Point) انجام شود.در نهایت هم منبع بسته می شود.استفاده از try ...catch هم برای مواردی مانند اینها است: منبع موجود نباشد (مثلا در اولین باری که باید اجرا شود)،داده های منبع آسیب دیده باشند و ... که در این حالات معمولا مقادیر پیشفرض به متغیر ها نسبت می دهند.

موفق باشید

razavi_university
شنبه 06 مهر 1387, 15:31 عصر
در مورد توضیح حالت دوم
استفاده از App Config

مثال (http://barnamenevis.org/forum/showthread.php?t=60927)
مقاله آموزشی (http://barnamenevis.org/forum/showpost.php?p=521209&postcount=7)