这篇文章主要介绍了c#构造ColorComboBox的代码分享,大家参考使用吧H2FHTML5中文学习网 - HTML5先行者学习网
代码如下:H2FHTML5中文学习网 - HTML5先行者学习网
    class ColorComboBox : ComboBoxH2FHTML5中文学习网 - HTML5先行者学习网
    {H2FHTML5中文学习网 - HTML5先行者学习网
        /// <summary>H2FHTML5中文学习网 - HTML5先行者学习网
        /// 当前选中色H2FHTML5中文学习网 - HTML5先行者学习网
        /// </summary>H2FHTML5中文学习网 - HTML5先行者学习网
        public Color SelectedColorH2FHTML5中文学习网 - HTML5先行者学习网
        {H2FHTML5中文学习网 - HTML5先行者学习网
            get { return Color.FromName(this.Text); }H2FHTML5中文学习网 - HTML5先行者学习网
        }H2FHTML5中文学习网 - HTML5先行者学习网
        /// <summary>H2FHTML5中文学习网 - HTML5先行者学习网
        /// 构造函数,构造颜色下拉列表H2FHTML5中文学习网 - HTML5先行者学习网
        /// </summary>H2FHTML5中文学习网 - HTML5先行者学习网
        public ColorComboBox()H2FHTML5中文学习网 - HTML5先行者学习网
        {H2FHTML5中文学习网 - HTML5先行者学习网
            this.DrawMode = DrawMode.OwnerDrawFixed;H2FHTML5中文学习网 - HTML5先行者学习网
            this.DropDownStyle = ComboBoxStyle.DropDownList;H2FHTML5中文学习网 - HTML5先行者学习网
            this.ItemHeight = 25;H2FHTML5中文学习网 - HTML5先行者学习网
 H2FHTML5中文学习网 - HTML5先行者学习网
            PropertyInfo[] propInfoList = typeof(Color).GetProperties(BindingFlags.Static | BindingFlags.DeclaredOnly | BindingFlags.Public);H2FHTML5中文学习网 - HTML5先行者学习网
            foreach (PropertyInfo c in propInfoList)H2FHTML5中文学习网 - HTML5先行者学习网
            {H2FHTML5中文学习网 - HTML5先行者学习网
                this.Items.Add(c.Name);H2FHTML5中文学习网 - HTML5先行者学习网
            }H2FHTML5中文学习网 - HTML5先行者学习网
            this.Text = "Black"; //设置默认色H2FHTML5中文学习网 - HTML5先行者学习网
        }H2FHTML5中文学习网 - HTML5先行者学习网
 H2FHTML5中文学习网 - HTML5先行者学习网
        protected override void OnDrawItem(DrawItemEventArgs e)H2FHTML5中文学习网 - HTML5先行者学习网
        {H2FHTML5中文学习网 - HTML5先行者学习网
            Rectangle rect = e.Bounds;H2FHTML5中文学习网 - HTML5先行者学习网
 H2FHTML5中文学习网 - HTML5先行者学习网
            if (e.Index >= 0)H2FHTML5中文学习网 - HTML5先行者学习网
            {H2FHTML5中文学习网 - HTML5先行者学习网
                string colorName = this.Items[e.Index].ToString();H2FHTML5中文学习网 - HTML5先行者学习网
                Color c = Color.FromName(colorName);H2FHTML5中文学习网 - HTML5先行者学习网
                using (Brush b = new SolidBrush(c)) //预留下拉项间距H2FHTML5中文学习网 - HTML5先行者学习网
                {H2FHTML5中文学习网 - HTML5先行者学习网
                    e.Graphics.FillRectangle(b, rect.X, rect.Y + 2, rect.Width, rect.Height - 4);H2FHTML5中文学习网 - HTML5先行者学习网
                }H2FHTML5中文学习网 - HTML5先行者学习网
            }H2FHTML5中文学习网 - HTML5先行者学习网
        }H2FHTML5中文学习网 - HTML5先行者学习网