PDA

View Full Version : دانلود کنید: کمبوباکس با قابلیت انتخاب رنگ ComboBox Color Picker



Mahmoud.Afrad
دوشنبه 15 خرداد 1391, 06:25 صبح
سلام

در این تاپیک کلاسی رو قرار میدم که از کمبوباکس مشتق شده است و قابلیت انتخاب رنگ توسط این کمبو باکس وجود دارد.
//using System;
//using System.Drawing;
//using System.Windows.Forms;

public class ComboBoxColorPicker : ComboBox
{
public Color SelectedColor { get; set; }

protected override void OnDropDownClosed(EventArgs e)
{
base.OnDropDownClosed(e);

this.SelectedColor = Color.FromName(base.Text);
}

protected override void InitLayout()
{
base.InitLayout();

base.DropDownStyle = ComboBoxStyle.DropDownList;
base.DrawMode = DrawMode.OwnerDrawFixed;

foreach (string st in Enum.GetNames(typeof(KnownColor)))
{
if (!base.Items.Contains(st))
base.Items.Add(st);
}

base.Sorted = true;
base.Text = SelectedColor.Name;
}

protected override void OnDrawItem(DrawItemEventArgs e)
{
base.OnDrawItem(e);

e.DrawBackground();

Graphics g = e.Graphics;
Rectangle rect = e.Bounds;
if (e.Index >= 0)
{
string n = base.Items[e.Index].ToString();
Font f = new Font("Arial", 9, FontStyle.Regular);
Color c = Color.FromName(n);
Brush b = new SolidBrush(c);
g.DrawString(n, f, Brushes.Black, rect.X + 2 + 50, rect.Top);
g.FillRectangle(b, rect.X, rect.Y + 1, 50, rect.Height - 2);
}
}

}

با اضافه کردن این کلاس به پروژه خود و پس از یک بار دیباگ ، می توانید از ComboBoxColorPicker که به تولباکس اضافه می شود استفاده کنید.

عکسی از کمبوباکس
87855
این کمبوباکس یک پراپرتی به نام SelectedColor دارد که می توانید رنگ پیشفرض را از طریق پنجره properties و یا کدنویسی ست کنید. همچنین از طریق همین پراپرتی میتوانید رنگ انتخاب شده در کمبو باکس را بدست آورید و از آن استفاده کنید.
comboBoxColorPicker1.SelectedColor


در آخر یک پروژه دمو قرار دادم که میتونید دانلود کنید