PDA

View Full Version : سوال: چطوری یه متغیر از نوع Color رو مقداردهی کنم؟



az.heidarzadeh
دوشنبه 21 آذر 1390, 11:53 صبح
سلام
من میخوام رنگی و از تو جعبه رنگ انتخاب کنم و تو دیتابیسم نگه دارم و دفعه بعد بتونم فرمم رو با اون رنگ لود کنم، الان که save میکنم خب مثل یه string ثبت میشه و دیگه به System.Drawing.Color نمیتونم cast کنم پراپرتی هاشم فقط get داره set نداره، بنظر شما چیکار کنم؟
ممنون...

Mahmoud Zaad
دوشنبه 21 آذر 1390, 12:04 عصر
سلام
حتماً می خوای توی دیتابیس نگهداری؟
اگه الزامی در کار نیست ، می تونی از setting خود پروژه استفاده کنی، وارد قسمت setting میشی و یه فیلد از نوع color ثبت می کنی بعد زمانیکه رنگ رو عوض می کنی اون رو مقدار دهی می کنی و در هنگام لود فرم هم اون رنگ رو می خونی.

wolf_majid
دوشنبه 21 آذر 1390, 12:10 عصر
this.BackColor = Color.FromName("Red");

az.heidarzadeh
دوشنبه 21 آذر 1390, 12:25 عصر
سلام
حتماً می خوای توی دیتابیس نگهداری؟

سلام
مرسی از جوابتون
میخوام رنگ رو که انتخاب میکنم بتونم save کنم یعنی بعد که برنامه بسته شد و دوباره لود شد بشه ازش استفاده کرد من تا حالا با setting برنامه کار نکردم نمیدونم همینطوریه یعنی با ثبت تو دیتابیس هیچ فرقی نداره اگه اینطوریه که خوب کار من انجام میشه دیگه فرقی نداره واسم...

az.heidarzadeh
دوشنبه 21 آذر 1390, 12:27 عصر
this.BackColor = Color.FromName("Red");
ممنون از توجهتون اما رنگای من ترکیبیه، اسم مشخصی نداره...

zarrinnegar
دوشنبه 21 آذر 1390, 12:34 عصر
معمولا رنگ ها بصورت ARGB ذخیره میشن یعنی آلفا و قرمز و سبز و آبی که هر کدوم یه شماره رنگ داره
باید 4 تا فیلد عددی توی دیتابیس بسازی و این رنگها رو توش ذخیره کنی و بعد موقع استفاده بگی این ترکیب رو استفاده کن

الان مثالشو برات میزارم


Color.FromArgb(96, 128, 160)


عدد اول آلفا یعنی شفافیت رنگ که اگه نزاری هون 0 رو در نظر میگیره
(transparent)

Mahmoud Zaad
دوشنبه 21 آذر 1390, 12:36 عصر
واقعیتش من الان vs ندارم ممکنه کدها ناقص باشن، ولی چیزی که یادمه به صورت زیره:
زیر نام سولوشن یه پوشه هست به اسم propeties داخل این پوشه، مورد سوم اسمش هست setting.setting همین گزینه رو دوبار کلیک کنید توی پنجره باز شده یه دیتاگریدویو هست توی ستون اول یه اسم انتخاب کنید(توی کد نوشتم namerang) از قسمت type هم نوع color رو انتخاب کنید و ستون سوم هم user باشه اطلاعات رو ذخیره کنید و پنجره رو ببندید، توی محیط کدنویسی هم شما توی کدی که برای colordialog می نویسید و رنگ رو انتخاب می کنید، رنگ انتخابی رو به صورت زیر ذخیره می کنید:
nameSolution.Properties.Settings.Default.namerang = colordialog.Color;
nameSolution.Properties.Settings.Default.Save();
بعد توی لود فرم کد زیر رو می نویسید
this.backcolor=nameSolution.Properties.Settings.De fault.namerang;

wolf_majid
دوشنبه 21 آذر 1390, 12:40 عصر
این هم یک نمونه راه دیگه
ColorDialog colorDlg = new ColorDialog();
colorDlg.ShowDialog();
int rgb = colorDlg.Color.ToArgb();
this.BackColor = Color.FromArgb(rgb);
هرچند فکر نمی کنم کار درستی باشه که بخاطر یک رنگ جدول درست کنید
به نظر من بهتره از روش های دیگه ای بهره بگیرید (مثل ثبت در رجیستری و یا ثبت در فایل xml و ...)

az.heidarzadeh
دوشنبه 21 آذر 1390, 12:43 عصر
مرسی از همتون درست شد... :قلب:

az.heidarzadeh
دوشنبه 21 آذر 1390, 12:58 عصر
هرچند فکر نمی کنم کار درستی باشه که بخاطر یک رنگ جدول درست کنید

نه واسه رنگ که جدول درست نمیکنم، یه profile دارم که همه تنظیمات برنامم رو توی اون ثبت میکنم. بهرحال ممنون از روش شما استفاده کردم عالی بود...