PDA

View Full Version : سوال: ثبت شدن تغییرات رنگ پس از تغییر دادن رنگ ها به وسیلهcolorDialog



F.zeinali
چهارشنبه 20 بهمن 1389, 18:47 عصر
تو برنامم یه ColorDialog گذاشتم که کاربر می تونه به وسیله اون رنگ Form را عوض کند ولی وقتی برنامه رو
می بندم و دوباره اجرا می کنم رنگ Form دوباره میشه همون رنگ اولیه و تغییرات رنگ توسط colorDialog ثابت
نمی مونه!!چیکار باید بکنم تا این تغییرات به طور دائم Save بشن؟؟
ممنون میشم راهنمایی کنید. با تشکر

mehdi.mousavi
پنج شنبه 21 بهمن 1389, 00:25 صبح
تو برنامم یه ColorDialog گذاشتم که کاربر می تونه به وسیله اون رنگ Form را عوض کند ولی وقتی برنامه رو می بندم و دوباره اجرا می کنم رنگ Form دوباره میشه همون رنگ اولیه و تغییرات رنگ توسط colorDialog ثابت نمی مونه!!چیکار باید بکنم تا این تغییرات به طور دائم Save بشن؟؟ ممنون میشم راهنمایی کنید. با تشکر

سلام.
قبل از بسته شدن form، آیا رنگ انتخاب شده رو جایی ذخیره می کنید که به هنگام باز شدن مجدد پنجره، اون رو Set کنید؟
اگر خیر، باید اینکارو کنید. اگر هم پاسخ مثبته، لطفا کدتون رو بذارید تا بررسی بشه.

موفق باشید.

F.zeinali
پنج شنبه 21 بهمن 1389, 00:39 صبح
با سلام
نه من رنگ انتخاب شده رو جایی ذخیره نمی کنم(چون نمی دونم چطور باید این کارو بکنم)
ممنون میشم بیشتر رهنمایی کنید

mmd2009
پنج شنبه 21 بهمن 1389, 07:56 صبح
با سلام.

واسه Save کردن شاید ساده ترین راه و مفید ترین راه همون Setting باشه.

فایل Setting تو properties هستش. اونو باز کنید و یک مقدار مثلا با نام FrmColor و Type اون رو بذارید System.Drawing.Color و Scope اون رو هم بذارید user و Value اون رو هم تغییر ندید.

حالا فرم مربوطه رو باز کنید و داخل رویداد Form_Load کدهای زیر رو بذارید :




private void Form1_Load(object sender, EventArgs e)
{
this.BackColor = Properties.Settings.Default.FrmColor;
}



خب حالا واسه اینکه رنگ رو هم تغییر بدید مثلا تو یک فرم به تنظیمات برنامه یک دکمه بذارید و کدهای زیر رو بذارید داخلش :



private void btnSetColor_Click(object sender, EventArgs e)
{
using (ColorDialog colorDialog = new ColorDialog())
{
if (colorDialog.ShowDialog() == DialogResult.OK)
{
this.BackColor = colorDialog.Color;
Properties.Settings.Default.FrmColor = colorDialog.Color;
Properties.Settings.Default.Save();
}
}
}


حالا برنامه رو اجرا کنید و یک رنگ انتخاب کنید و اون فرمی که خواستید رنگش تغییر کنه رو باز کنید، خب رنگ تغییر کرده حالا برنامه رو ببنید و دوباره باز کنید میبینید که رنگ همونی هست که شما انتخاب کردید.