هر برنامهای که نوشته میشود، تنظیماتی دارد که کاربر آنها را تنظیم میکند و انتظار دارد در مراجعات و اجراهای بعدی تنظیمات مورد نظرش روی برنامه دیده شود.
مثلاً ممکن است زبان برنامه یا قالب آن را تغییر دهد...
موضوع این است که ما به عنوان برنامهنویس، این تنظیمات را باید در کجا ذخیره کنیم تا در مراجعات بعدی بدانیم کاربر چه تنظیامتی را قبلاً در نظر گرفته؟
طبیعتاً دیتابیسهایی مثل 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
فرض کنید میخواهید انتخاب کاربر در یک comboBox را ذخیره کنید.
- روی comboBox (و یا هر کنترل دیگری که میخواهید تنظیماتش ذخیره شود) کلیک کنید.
- در پنجره Properties در بخش Data گزینه (Application Settings) را باز کنید و در مقابل (PropertyBinding) روی دکمه مشخص شده کلیک کنید:
- تصمیم بگیرید که کدام یک از صفات این کنترل باید ذخیره شود یا خوانده شود. مثلاً در مورد comboBox طبیعتاً مقدار صفت Text مهم است. بنابراین، در مقابل Text منوی پایینافتادنی را باز کنید:
- در پنجرهای که باز میشود، اگر مقدار پیشفرضی باید در اولین اجرای برنامه در نظر گرفته شود، آنرا در مقابل DefaultValue وارد کنید.
- یک نام یکتا برای این صفت خاص در نظر بگیرید.
- مقدار Scope را روی User تنظیم کنید. (توجه اگر روی Application تنظیم کنید، فقط در زمان برنامه نویسی قابل تغییر است و در زمان اجرا، Read-only خواهد بود. پس حتماً روی User در نظر بگیرید چرا که کاربر باید اینها را هر بار تغییر دهد)
- مرحله ایجاد، تمام شد.
توضیحات بیشتر:
http://msdn.microsoft.com/en-us/library/25zf0ze8.aspx
برای تغییر یا خواندن تنظیمات، از قطعه کد زیر استفاده کنید:
Properties.Settings.Default.lang = "مقدار جدید";
سپس با قطعه کد زیر، اطلاعات را در فایل، ذخیره کنید:
Properties.Settings.Default.Save();
توضیحالت بیشتر:
http://msdn.microsoft.com/en-us/library/bb397755.aspx
برای حذف تنظیمات یک فیلد، از منوی Project گزینه Project Properties را انتخاب کنید. سپس به بخش Settings بروید. در آنجا هم میتوانید تنظیمات خاصی را حذف و هم اضافه و ویرایش کنید...
موفق باشید؛
حمید رضا نیرومند