PDA

View Full Version : سوال: تبدیل رشته به رنگ



forodo
شنبه 07 دی 1392, 09:27 صبح
سلام
من رنگ انتخابی کاربر رو داخل بانک اطلاعاتی ذخیره کردم ولی حالا می خوام مثلاً بک کالر فرم رو به اون رنگ دربیارم چطور می تونم اون رشته رو که مثلاً Red هستش به نوع رنگ تبدیل کنم؟

esafb52
شنبه 07 دی 1392, 09:49 صبح
با سلام از طریق یه ایف ساده!!!!

string color = "red";
if (color == "red")
{
this.BackColor = System.Drawing.Color.Red;
}

Mousavmousab
شنبه 07 دی 1392, 09:52 صبح
سلام
خوب بستگی داره، اگه شما چند مقدار مشخص مثل RED Blue Green Pink به این صورت در یک Table در Db خودتون داشته باشین. معادل های این موارد به سادگی وجود دارد.
و اگر مقادیر دیگری ذخیره کردید مثلاٌ چه می دونم آبی نفتی روشن مایل به فلان رنگ !!!!؟ این دیگه جای بحث داره. کلاٌ کار استانداردی انجام ندادین. چون لازم نبود که نام رنگ را کاربر انتخاب کنه شما از Color Dialog در خود دات نت می تونستید استفاده کنید و کاربر رنگ مورد علاقه اش را انتخاب می کرد و در صورتی که لازم بود رنگ را ذخیره می کردید. این کار بهتر بود.
موفق باشید

Davidd
شنبه 07 دی 1392, 16:28 عصر
راه حل منطقيش اينه كه به جاي اسم رنگ عدد آن رنگ ذخيره كني :

Color c = Color.FromName("red");
int arg = c.ToArgb();
و هنگام بازيابي عكس اينكارو انجام بدي : Color c = Color.FromArgb(arg);

اما اگه اسامي رنگ هايي كه ذخيره كردي استاندارد هستند مثلا red blue .... ميتوني از اين دستور استفاده كني :
Color c = Color.FromName(colorName);

در غير اين صورت بايد از switch استفاده كني :
switch (colorName)
{case "red":
c = Color.Red;
break;
case "blue":
c = Color.Blue;
break;
default:
break;
}
موفق باشي

forodo
شنبه 07 دی 1392, 18:23 عصر
رنگ را با ColorDialog می گیرم و اونو داخل بانک اطلاعاتی ذخیره می کنم ولی موقع فراخوانی که من نمی دونم کاربر چه رنگی رو ذخیره کرده.
چون می خوام کاربر با نام کاربری و پسورد خودش که وارد برنامه شد، با هر کامپیوتری، با رنگ دلخواه خودش فرمها باز بشه.
اگر اینطوری نبود می دونم که می شه داخل Setting اون رو گذاشت. ولی این روش برای همون برنامه ای هستش که توی اون کامپیوتر وجود داره.
با چه روشی رنگ رو ذخیره کنم و با چه روشی اون رو فراخوانی کنم؟
عدد و نوشته برام فرقی نداره. ولی روشش رو نمی دونم که چه جوری ذخیره و این طرف فراخوانی کنم!
با تشکر

forodo
یک شنبه 08 دی 1392, 13:25 عصر
یافتم.

private void button1_Click(object sender, EventArgs e)
{
ColorDialog cd = new ColorDialog();
if (cd.ShowDialog() == DialogResult.OK)
{
string s = cd.Color.Name.ToString();
Color aabi = Color.FromName(s);
this.BackColor = aabi;
}
}