C # construct ColorComboBox
This article mainly introduces c # code sharing for constructing ColorComboBox.
The Code is as follows:
Class ColorComboBox: ComboBox
{
/// <Summary>
/// The selected color
/// </Summary>
Public Color SelectedColor
{
Get {return Color. FromName (this. Text );}
}
/// <Summary>
/// Constructor, build color drop-down list
/// </Summary>
Public ColorComboBox ()
{
This. DrawMode = DrawMode. OwnerDrawFixed;
This. DropDownStyle = ComboBoxStyle. DropDownList;
This. ItemHeight = 25;
PropertyInfo [] propInfoList = typeof (Color). GetProperties (BindingFlags. Static | BindingFlags. DeclaredOnly | BindingFlags. Public );
Foreach (PropertyInfo c in propInfoList)
{
This. Items. Add (c. Name );
}
This. Text = "Black"; // sets the default color.
}
Protected override void OnDrawItem (DrawItemEventArgs e)
{
Rectangle rect = e. Bounds;
If (e. Index> = 0)
{
String colorName = this. Items [e. Index]. ToString ();
Color c = Color. FromName (colorName );
Using (Brush B = new SolidBrush (c) // reserved drop-down Interval
{
E. Graphics. FillRectangle (B, rect. X, rect. Y + 2, rect. Width, rect. Height-4 );
}
}
}