PDA

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



voice.of.silence
چهارشنبه 04 مرداد 1391, 23:34 عصر
سلام دوستان:
من می خواهم که تمام رنگها را به combobox اضافه کنم و از آن در برنامه برای تغییر رنگ استفاده کنم.
آیا شما کدی را می شناسید که با استفاده از آن بتوان لیست همه ی رنگها را به Combobox اضافه کرد.
اگر شما چنین کدی را دارید لطفا مرا در ایجاد این combobox کمک کنید.

با سپاس .

Voice of Silence

mohammad272005
چهارشنبه 04 مرداد 1391, 23:57 عصر
با سلام
برای مفداردهی اولیه از کد زیر استفاده کنید this.comboBox1.DataSource = typeof (Color).GetProperties(BindingFlags.Static | BindingFlags.Public).Select(p => p.Name).ToList(); و برای بدست آوردن مقدار انتخابی از Color.FromName((comboBox1.SelectedValue).ToString( )) استفاده کنید

harani
چهارشنبه 04 مرداد 1391, 23:59 عصر
بهترین جواب : http://barnamenevis.org/showthread.php?344538-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%DA%A9%D9%86%DB%8C%D8%AF-%DA%A9%D9%85%D8%A8%D9%88%D8%A8%D8%A7%DA%A9%D8%B3-%D8%A8%D8%A7-%D9%82%D8%A7%D8%A8%D9%84%DB%8C%D8%AA-%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8-%D8%B1%D9%86%DA%AF-ComboBox-Color-Picker

the king
پنج شنبه 05 مرداد 1391, 00:24 صبح
سلام دوستان:
من می خواهم که تمام رنگها را به combobox اضافه کنم و از آن در برنامه برای تغییر رنگ استفاده کنم.
آیا شما کدی را می شناسید که با استفاده از آن بتوان لیست همه ی رنگها را به Combobox اضافه کرد.
اگر شما چنین کدی را دارید لطفا مرا در ایجاد این combobox کمک کنید.

با سپاس .

Voice of Silence
نداشتم ولی نوشتم. لطفا یک فرم جدید Form1 ایجاد کنید و سپس یک عدد ComboBox با نام comboBox1 را روی فرم Form1 تان قرار دهید، این کد فرم تان است :

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Load += new EventHandler(InitColors);
}

private void InitColors(object sender, EventArgs e)
{
comboBox1.DrawItem += new DrawItemEventHandler(comboBox1_DrawItem);
comboBox1.DrawMode = DrawMode.OwnerDrawFixed;
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
comboBox1.BeginUpdate();
comboBox1.Items.Clear();
foreach (System.Reflection.PropertyInfo prop in typeof(Color).GetProperties())
{
if (prop.PropertyType == typeof(Color))
{
comboBox1.Items.Add(prop.Name);
}
}
comboBox1.EndUpdate();
}

void comboBox1_DrawItem(object sender, DrawItemEventArgs e)
{
if (e.Index == -1)
{
return;
}
StringFormat format = new StringFormat();
Color c = Color.FromName(comboBox1.Items[e.Index].ToString());
format.LineAlignment = StringAlignment.Center;
format.Alignment = StringAlignment.Near;
e.DrawBackground();
Rectangle rect = new Rectangle(e.Bounds.X + 2, e.Bounds.Y + 1, 18, e.Bounds.Height - 3);
rect = new Rectangle(rect.X + 1, rect.Y + 1, rect.Width - 1, rect.Height - 1);
e.Graphics.FillRectangle(new SolidBrush(c), rect);
e.Graphics.DrawRectangle(Pens.Black, rect);
rect = new Rectangle(e.Bounds.X + 23, e.Bounds.Y, e.Bounds.Width - 23, e.Bounds.Height);
e.Graphics.DrawString(comboBox1.Items[e.Index].ToString(), e.Font, new SolidBrush(e.ForeColor), rect, format);
}
}

sirvan-me
پنج شنبه 05 مرداد 1391, 00:38 صبح
با سلام
برای مفداردهی اولیه از کد زیر استفاده کنید this.comboBox1.DataSource = typeof (Color).GetProperties(BindingFlags.Static | BindingFlags.Public).Select(p => p.Name).ToList(); و برای بدست آوردن مقدار انتخابی از Color.FromName((comboBox1.SelectedValue).ToString( )) استفاده کنید

برای استفاده از کد دوستمون که من خیلی باهاش حال کردم فضای نام System.Reflection رو به برنامتون اضافه کنید .

مهرداد صفا
پنج شنبه 05 مرداد 1391, 11:41 صبح
سلام
در تاپیک زیر موضوعی مشابه با نمونه کد vb.net مطرح شده است که امیدوارم مفید باشد.
شمارش خاصیت های موجود در یک کلاس (http://barnamenevis.org/showthread.php?347751-شمارش-خاصیت-های-موجود-در-یک-کلاس)

مهرداد صفا
پنج شنبه 05 مرداد 1391, 12:22 عصر
سلام دوستان:
من می خواهم که تمام رنگها را به combobox اضافه کنم و از آن در برنامه برای تغییر رنگ استفاده کنم.
آیا شما کدی را می شناسید که با استفاده از آن بتوان لیست همه ی رنگها را به Combobox اضافه کرد.
اگر شما چنین کدی را دارید لطفا مرا در ایجاد این combobox کمک کنید.

با سپاس .

Voice of Silence


/* به نام خدا
* صل الله علی محمد و آله
* */

using System;

using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{

public Form1()
{
InitializeComponent();
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.combox1_SelectedIndexChan ged);
}
private void combox1_SelectedIndexChanged(object sender, EventArgs e)
{
System.Reflection.Assembly SystemDotDrawingDotDll = System.Reflection.Assembly.GetAssembly(System.Draw ing.Color.Black.GetType());
System.Drawing.Color SelectedColor = (System.Drawing.Color)SystemDotDrawingDotDll.GetTy pe("System.Drawing.Color").GetProperties()[this.comboBox1.SelectedIndex].GetValue(null, null);
this.BackColor = SelectedColor;


}
private void Form1_Load(object sender, EventArgs e)
{
System.Reflection.Assembly SystemDotDrawingDotDll = System.Reflection.Assembly.GetAssembly(System.Draw ing.Color.Black.GetType());
foreach (System.Reflection.PropertyInfo Color in SystemDotDrawingDotDll.GetType("System.Drawing.Color").GetProperties())

{
this.comboBox1.Items.Add(Color.Name);


}


}
}
}