شنبه ۱ دی ۱۴۰۳ |  عضویت / ورود

چگونه تنظیمات کاربر در برنامه ای که با C#‎ یا VB نوشته‌ایم را جایی ذخیره کنیم؟


Sunday, 2011 October 16   نویسنده: Hamid   تعداد بازدید: 8867 بار  #آموزش زبان سی شارپ (C# Language)‏   امتیاز متوسط: امتیازی داده نشده است

هر برنامه‌ای که نوشته می‌شود، تنظیماتی دارد که کاربر آن‌ها را تنظیم می‌کند و انتظار دارد در مراجعات و اجراهای بعدی تنظیمات مورد نظرش روی برنامه دیده شود.

مثلاً ممکن است زبان برنامه یا قالب آن را تغییر دهد...

موضوع این است که ما به عنوان برنامه‌نویس، این تنظیمات را باید در کجا ذخیره کنیم تا در مراجعات بعدی بدانیم کاربر چه تنظیامتی را قبلاً در نظر گرفته؟

طبیعتاً دیتابیس‌هایی مثل Access برای این کار مناسب نیستند، چون یک سطر بیشتر داده نداریم. بد نیست بدانید، خود Visual Studio راه‌هایی برای این کار در نظر گرفته است:

 

دو راه کلی برای این کار وجود دارد:

1- ذخیره سازی در رجیستری (که اکیداً پیشنهاد شده است از این روش استفاده نکنید، و موضوع بحث ما هم این نیست)

2- ذخیره سازی در فایل user.config که به این روش در اصطلاح Application Settings گفته می‌شود.

در روش دوم، اطلاعات به شکل XML در فایلی در کنار فایل اجرایی برنامه شما ذخیره می‌شود.

توضیحات بیشتر در مورد Application Settings:

http://msdn.microsoft.com/en-us/library/a65txexh%28v=VS.100%29.aspx

 

1- اضافه کردن Application Settings:

فرض کنید می‌خواهید انتخاب کاربر در یک comboBox را ذخیره کنید.

- روی comboBox (و یا هر کنترل دیگری که می‌خواهید تنظیماتش ذخیره شود) کلیک کنید.

- در پنجره Properties در بخش Data گزینه (Application Settings) را باز کنید و در مقابل (PropertyBinding) روی دکمه مشخص شده کلیک کنید:

http://tutorials.aftab.cc/programming/application_settings/application_settings_1.png

- تصمیم بگیرید که کدام یک از صفات این کنترل باید ذخیره شود یا خوانده شود. مثلاً در مورد comboBox طبیعتاً مقدار صفت Text مهم است. بنابراین، در مقابل Text منوی پایین‌افتادنی را باز کنید:

http://tutorials.aftab.cc/programming/application_settings/application_settings_2.png

- در پنجره‌ای که باز می‌شود، اگر مقدار پیش‌فرضی باید در اولین اجرای برنامه در نظر گرفته شود، آن‌را در مقابل DefaultValue وارد کنید.

- یک نام یکتا برای این صفت خاص در نظر بگیرید.

- مقدار Scope را روی User تنظیم کنید. (توجه اگر روی Application تنظیم کنید، فقط در زمان برنامه نویسی قابل تغییر است و در زمان اجرا، Read-only خواهد بود. پس حتماً روی User در نظر بگیرید چرا که کاربر باید این‌ها را هر بار تغییر دهد)

http://tutorials.aftab.cc/programming/application_settings/application_settings_3.png

- مرحله ایجاد، تمام شد.

توضیحات بیشتر:

http://msdn.microsoft.com/en-us/library/25zf0ze8.aspx

 

2- دسترسی به تنظیمات:

برای تغییر یا خواندن تنظیمات، از قطعه کد زیر استفاده کنید:

 Properties.Settings.Default.lang = "مقدار جدید";

سپس با قطعه کد زیر، اطلاعات را در فایل، ذخیره کنید:

Properties.Settings.Default.Save();

توضیحالت بیشتر:

http://msdn.microsoft.com/en-us/library/bb397755.aspx

 

3- حذف Application Settings:

برای حذف تنظیمات یک فیلد، از منوی Project گزینه Project Properties را انتخاب کنید. سپس به بخش Settings بروید. در آن‌جا هم می‌توانید تنظیمات خاصی را حذف و هم اضافه و ویرایش کنید...

 

موفق باشید؛
حمید رضا نیرومند


.



ارسال سؤال یا نظر


1- سجاد:
بوسیله: , در: Saturday, 2011 November 12-کد: 3638
واسه ویژوال بیسیک 6 هم راهی میشناسین ؟
نظرتون چیه اگه داده ها توی یه فایل متنی ذخیره بشن ، بعد هر بار که برنامه اجرا میشه ازش بخونه ؟
اگه راه بهتری سراغ دارین لطفا بنویسید



2- وحید حیدری:
بوسیله: , در: Wednesday, 2014 January 15-کد: 9196
استاد عزیزم دستت درد نکنه عالی بود


3- محمد دل روشن:
بوسیله: , در: Tuesday, 2014 May 27-کد: 10370
علی بود من که تا حالا از ریجیستری استفاده میکردم این روش رو بلد نبدم تشکر میکنم


4- مهدی- md3848:
بوسیله: , در: Thursday, 2015 September 17-کد: 13825
داداش دمت گرم
حال دادی


5- مهدی- md3848:
بوسیله: , در: Thursday, 2015 September 17-کد: 13826
داداش دمت گرم
حال دادی

Tutorials ©