PDA

View Full Version : سوال: ذخیره تغییرات ComboBox بدون کد نویسی...



rezarko
یک شنبه 03 اردیبهشت 1391, 15:29 عصر
سلام.دوستان راهی هست که بشه بدون کد نویسی تغییرات کمبو باکس رو ذخیره کرد؟

mazaher5723
یک شنبه 03 اردیبهشت 1391, 16:58 عصر
سلام دوست عزیز واضجتر بگین

rezarko
یک شنبه 03 اردیبهشت 1391, 19:31 عصر
یعنی وقتی یک ایتم رو انتخاب میکنن و دوباره برنامه رو اجرا میکنن همون ایتم نشون داده بشه.

rezarko
دوشنبه 04 اردیبهشت 1391, 15:28 عصر
:گریه:چرا کسی جواب نمیده؟

tehran11
دوشنبه 04 اردیبهشت 1391, 16:38 عصر
خیر، نمیشه مگر در صورتی که موقع initialize کردن کامپوننت اونو مقدار دهی کرد که یا باید توسط خودتون داخل برنامه انجام بشه یا اینه کنترل رو طوری تغییرش بدین (یه کنترل بر پایه کلاس اون کنترل بسازین) که موقع تغییر یکی از مقادیرش، مقدار جدید یا اصلاحی رو یه جایی مثل یه فایل xml یا ini یا رجیستری ذخیره کنه و موقع نمایش بعدی خودش موقع initialize کردن اونا رو دوباره لودش کنه.

hakim22
دوشنبه 04 اردیبهشت 1391, 17:20 عصر
بدون کد نویسی که امکان نداره ولی از Settings استفاده کنید
یک متغیر مثلا از نوع integer تعریف کنید و ایندکس انتخاب کاربر رو به اون اختصاص بدید
دفعه بعد روی رویداد application.startup اون متغیر رو به selectedindex در combobox تنظیم کنید.
در سه حرکت !!!

rezarko
دوشنبه 04 اردیبهشت 1391, 20:22 عصر
ممنون . میشه کد کاملشو بذارید؟

rezarko
دوشنبه 04 اردیبهشت 1391, 20:36 عصر
لطفاً از Setting تکست باکس هم یه مثال بزنید.

رافعی مهدی
دوشنبه 04 اردیبهشت 1391, 21:21 عصر
سلام

SolutionExplorer » Solution » Project » Properties » Settings.settings

در فیلد Name یه اسم مناسب برای ذخیره کردن State مطلوب از Object مورد نظر وارد کنید. فیلد Type نوع مقدار رو مشخص میکنه، مثلاً برای ذخیره SelectedIndex یک ComboBox میتونید از int و برای ذخیره متن یک TextBox از string استفاده کنید. اگر این مقدار برای تمام کاربران نرم افزار ثابت هست، فیلد Scope رو روی Application و در غیر اینصورت بر روی User تعریف کنید. توجه کنید که تنظیم Scope بر روی Application به معنی این هست که اون مقدار در برنامه ثابت (Read-Only) هست و دیگر نمیتونید تغییرش بدهید. بنابراین برای مقادیر با Scope کاربر میتونیم (برای مثال برای کمبوباکس) به صورت زیر در برنامه مقداردهی کرده و اون رو ذخیره کنیم:


Properties.Settings.Default.ComboBox1SelectedIndex = combo1.SelectedIndex;
Properties.Settings.Default.Save();


برای بارگزاری هم که مشخصاً در محل مناسب مینویسیم:


combo1.SelectedIndex = Properties.Settings.Default.ComboBox1SelectedIndex ;

rezarko
سه شنبه 05 اردیبهشت 1391, 18:53 عصر
ممنون اقای رافعی من کد رو وارد کردم ولی این ارور رو داد:
'PhotoPaeezan.Properties.Settings' does not contain a definition for 'ComboBox1SelectedIndex' and no extension method 'ComboBox1SelectedIndex' accepting a first argument of type 'PhotoPaeezan.Properties.Settings' could be found (are you missing a using directive or an assembly reference?)

Mahmoud.Afrad
سه شنبه 05 اردیبهشت 1391, 19:31 عصر
چه زمانی این خطا رو میده؟ هنگام بستن برنامه یا لود.

رافعی مهدی
سه شنبه 05 اردیبهشت 1391, 20:37 عصر
آآ!!
مثل اینکه توضیحاتم به اندازه کافی گویا نبوده! مقدار ComboBox1SelectedIndex فقط یک مثال بود.
خب از اول: فرض کنیم که شما در SolutionExplorer فایل Settings.settings رو نمیبینید. روی پروژه مورد نظر مطابق شکل زیر راست کلیک کرده و گزینه Properties رو انتخاب کنید.


86270

طبق شکل زیر به بخش مربوط به Settings پروژه بروید.


86271

حالا مطابق شکل زیر یک مقدار دلخواه (مثلاً ComboBox1SelectedIndex) رو در فیلد Name تعریف کنید و نوع اون رو هم بر اساس نیاز (مثلا int) مشخص کنید.


86269

بقیه مراحل هم عیناً مطابق پست قبل انجام میشوند.