c#构造ColorComboBox(颜色下拉框)

时间:2022-07-23 21:54:12 


    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);
                }
            }
        }

标签:ColorComboBox,颜色下拉框
0
投稿

猜你喜欢

  • Java操作Redis2种方法代码详解

    2022-09-10 22:58:56
  • Android 中在有序广播中添加自定义权限的实例

    2021-08-10 05:09:35
  • 解决MyEclipse出现the user operation is waiting的问题

    2022-05-02 21:44:07
  • Java框架之Maven SSM集合

    2022-04-05 16:22:54
  • springboot整合企微webhook机器人发送消息提醒

    2023-10-10 01:29:08
  • Compare And Swap底层原理及代码示例详解

    2022-10-10 16:06:18
  • Kotlin-Android之Activity使用详解

    2023-05-02 14:53:03
  • Android使用音频信息绘制动态波纹

    2022-11-05 00:51:50
  • Android 自定义View之边缘凹凸的优惠券效果的开发过程

    2021-12-30 07:25:10
  • java使用Filter实现自动登录的方法

    2022-09-09 15:46:47
  • 使用SpringBoot+EasyExcel+Vue实现excel表格的导入和导出详解

    2023-07-18 18:15:14
  • C# 开发(创蓝253)手机短信验证码接口的实例

    2023-05-22 11:15:54
  • C# TreeView无限目录树实现方法

    2023-04-20 03:05:46
  • java easyUI实现自定义网格视图实例代码

    2022-05-16 23:52:54
  • C#中IEnumerable、ICollection、IList、List之间的区别

    2022-07-27 18:15:07
  • Android编程使用HTTP协议与TCP协议实现上传文件的方法

    2023-11-22 15:37:43
  • 详解用maven将dubbo工程打成jar包运行

    2023-10-20 04:34:42
  • Java快速入门掌握类与对象及变量的使用

    2021-10-14 04:49:13
  • Java实现并查集示例详解

    2023-07-17 05:41:34
  • Java设计模式之桥接模式

    2021-08-31 05:56:02
  • asp之家 软件编程 m.aspxhome.com