您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> 编程语言综合 >> 正文

c#构造ColorComboBox

作者:佚名    责任编辑:admin    更新时间:2022-06-22

这篇文章主要介绍了c#构造ColorComboBox的代码分享,大家参考使用吧

代码如下:

    class ColorComboBox : ComboBox

    {

        /// <summary>

        /// 当前选中色

        /// </summary>

        public Color SelectedColor

        {

            get { return Color.FromName(this.Text); }

        }

        /// <summary>

        /// 构造函数,构造颜色下拉列表

        /// </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"; //设置默认色

        }

 

        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)) //预留下拉项间距

                {

                    e.Graphics.FillRectangle(b, rect.X, rect.Y + 2, rect.Width, rect.Height - 4);

                }

            }

        }