using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing;
using System.ComponentModel;

namespace ColorCheckControls
{
    public class CustomCheckBox: CheckBox
    {
        private Color _CheckColor;

        private void PaintHandler(object sender, PaintEventArgs args)
        {
            if (this.Checked)
            {
                Point pt = new Point();

                if (this.CheckAlign == ContentAlignment.BottomCenter)
                {
                    pt.X = () - ;
                    pt.Y = ;
                }

                if (this.CheckAlign == ContentAlignment.BottomLeft)
                {
                    pt.X = ;
                    pt.Y = ;
                }

                if (this.CheckAlign == ContentAlignment.BottomRight)
                {
                    pt.X = ;
                    pt.Y = ;
                }

                if (this.CheckAlign == ContentAlignment.MiddleCenter)
                {
                    pt.X = () - ;
                    pt.Y = () - ;
                }

                if (this.CheckAlign == ContentAlignment.MiddleLeft)
                {
                    pt.X = ;
                    pt.Y = () - ;
                }

                if (this.CheckAlign == ContentAlignment.MiddleRight)
                {
                    pt.X = ;
                    pt.Y = () - ;
                }

                if (this.CheckAlign == ContentAlignment.TopCenter)
                {
                    pt.X = () - ;
                    pt.Y = ;
                }

                if (this.CheckAlign == ContentAlignment.TopLeft)
                {
                    pt.X = ;
                    pt.Y = ;
                }

                if (this.CheckAlign == ContentAlignment.TopRight)
                {
                    pt.X = ;
                    pt.Y = ;
                }

                DrawCheck(args.Graphics, this.CheckColor, pt);
            }
        }

        private void DrawCheck(Graphics g, Color c, Point pt)
        {
            Pen pen = new Pen(c);
            g.DrawLine(pen, pt.X, pt.Y + , pt.X + , pt.Y + );
            g.DrawLine(pen, pt.X, pt.Y + , pt.X + , pt.Y + );
            g.DrawLine(pen, pt.X, pt.Y + , pt.X + , pt.Y + );
            g.DrawLine(pen, pt.X + , pt.Y + , pt.X + , pt.Y - );
            g.DrawLine(pen, pt.X + , pt.Y + , pt.X + , pt.Y);
            g.DrawLine(pen, pt.X + , pt.Y + , pt.X + , pt.Y + );
        }

        public CustomCheckBox()
        {
            this._CheckColor = ForeColor;
            this.Paint += new PaintEventHandler(this.PaintHandler);
        }

        [Description("CheckBox复选框颜色")]
        public Color CheckColor
        {
            get
            {
                return _CheckColor;
            }
            set
            {
                _CheckColor = value;
                Invalidate();
            }
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing;
using System.ComponentModel;

namespace ColorCheckControls
{
    public class CustomColorRadioButton: RadioButton
    {
        private Color _CheckColor;

        private void PaintHandler(object sender, PaintEventArgs args)
        {
            if (this.Checked)
            {
                Point pt = new Point();
                if (CheckAlign == ContentAlignment.BottomCenter)
                {
                    pt.X = () - ;
                    pt.Y = ;
                }

                if (CheckAlign == ContentAlignment.BottomLeft)
                {
                    pt.X = ;
                    pt.Y = ;
                }

                if (CheckAlign == ContentAlignment.BottomRight)
                {
                    pt.X = ;
                    pt.Y = ;
                }

                if (CheckAlign == ContentAlignment.MiddleCenter)
                {
                    pt.X = () - ;
                    pt.Y = () - ;
                }

                if (CheckAlign == ContentAlignment.MiddleLeft)
                {
                    pt.X = ;
                    pt.Y = () - ;
                }

                if (CheckAlign == ContentAlignment.MiddleRight)
                {
                    pt.X = ;
                    pt.Y = () - ;
                }

                if (CheckAlign == ContentAlignment.TopCenter)
                {
                    pt.X = () - ;
                    pt.Y = ;
                }
                if (CheckAlign == ContentAlignment.TopLeft)
                {
                    pt.X = ;
                    pt.Y = ;
                }
                if (CheckAlign == ContentAlignment.TopRight)
                {
                    pt.X = ;
                    pt.Y = ;
                }

                DrawCheck(args.Graphics, this.CheckColor, pt);
            }
        }

        private void DrawCheck(Graphics g, Color c, Point pt)
        {
            /*
            Pen pen = new Pen(c);
            g.DrawLine(pen, pt.X, pt.Y + 1, pt.X + 4, pt.Y + 1);
            g.DrawLine(pen, pt.X-1, pt.Y + 2, pt.X + 5, pt.Y + 2);
            g.DrawLine(pen, pt.X, pt.Y + 3, pt.X + 4, pt.Y + 3);
            g.DrawLine(pen, pt.X + 1, pt.Y, pt.X + 1, pt.Y + 4);
            g.DrawLine(pen, pt.X + 2, pt.Y-1, pt.X + 2, pt.Y + 5);
            g.DrawLine(pen, pt.X + 3, pt.Y, pt.X + 3, pt.Y + 4);
             * */
            Brush brush = new SolidBrush(c);
            g.FillEllipse(brush, pt.X-, pt.Y-, , );
        }

        public CustomColorRadioButton()
        {
            this._CheckColor = this.ForeColor;
            this.Paint += new PaintEventHandler(this.PaintHandler);
        }
        [Description("按钮颜色")]
        public Color CheckColor
        {
            get
            {
                return _CheckColor;
            }
            set
            {
                _CheckColor = value;
                Invalidate();
            }
        }
    }
}

点我下载

自定义颜色显示的CheckBox的更多相关文章

  1. 【Android学习】自定义Android样式checkbox

    下面简单介绍下在Androdi中如何更改Checkbox的背景图片,可以自定义样式 1.首先res/drawable中定义编写如下样式的XML,命名为:checkbox_style: <?xml ...

  2. 自定义input[type="checkbox"]的样式

    对复选框自定义样式,我们以前一直用的脚本来实现,不过现在可以使用新的伪类 :checkbox 来实现. 如果直接对复选框设置样式,那么这个伪类并不实用,因为没有多少样式能够对复选框起作用.不过,倒是可 ...

  3. 原生javascript自定义input[type=checkbox]效果

    2018年6月27日  更新 能用css3,就不用js 用纯css3实现样式重写 <!DOCTYPE html> <html lang="en"> < ...

  4. 自定义radio、checkbox的样式

    input标签中的radio和checkbox是很表单中常用的类型,大多时候,默认样式并不能满足我们的需求,所以有了此篇. 自定义样式,由此开启: html: <div class=" ...

  5. 关于input 的选中,自定义input[type="checkbox"]样式

    1.css 呈现   选中后 的input的样式可以用 /*背景图*/      background:url('../pc/images/archives/icon_choosed.png') no ...

  6. ZH奶酪:纯CSS自定义Html中Checkbox复选框样式

    原文链接:http://www.lrxin.com/archives-683.html 首先看下效果: 点击演示地址查看实例. 首先,需要添加一段CSS隐藏所有的Checkbox复选框,之后我们会改变 ...

  7. 自定义input[type="checkbox"]样式

    input[type=checkbox] { visibility: hidden; position: relative;} input[type=checkbox]:after { content ...

  8. WPF CheckBox 自定义样式

    WPF 自定义样式.CheckBox <Style x:Key="EmptyCheckBox" TargetType="CheckBox"> < ...

  9. 自定义checkbox样式

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

随机推荐

  1. 13个优秀的开源UML工具介绍

    本文将为您介绍12个优秀的UML工具: 1. StarUML StarUML(简称SU),是一种创建UML类图,是一种生成类图和其他类型的统一建模语言(UML)图表的工具.StarUML是一个开源项目 ...

  2. SharePoint 2010 BCS - 简单实例(一)数据源添加

    博客地址 http://blog.csdn.net/foxdave 本篇基于SharePoint 2010 Foundation. 我的数据库中有一个病人信息表Patient,现在我就想把这个表中的数 ...

  3. for循环进阶

    [引例] 输出一行10个“*” #include<cstdio> int main(){ printf("**********\n"); ; } 思考: (1)输出一行 ...

  4. <二叉树的基本操作(有层次遍历)>

    #include<stdio.h> #include<stdlib.h> #include<string.h> #define num 100 #define OK ...

  5. IOS中nil/Nil/NULL的区别

    类与对象的概念 类是对同一类事物高度的抽象,类中定义了这一类对象所应具有的静态属性(属性)和动态属性(方法). 对象是类的一个实例,是一个具体的事物. 类与对象是抽象与具体的关系. 类其实就是一种数据 ...

  6. (转)HTML5开发学习(2):本地存储之localStorage 、sessionStorage、globalStorage

    原文:http://www.cnblogs.com/xumingxiang/archive/2012/03/25/2416386.html HTML5开发学习(2):本地存储之localStorage ...

  7. @synthesize的使用

    利用@synthesize可以给在.m文件中给.h文件中的属性重新定义新的名称如 @synthesize firstname = anothername:firstname是在.h文件中定义的,新定义 ...

  8. php大力力 [026节] php开发状态要随时做好整理工作

    php大力力 [026节]  php开发状态要随时做好整理工作: 1.整理了开发目录,以及文件命名: 2.做了各个页面的快捷方式: 3.把浏览器safari的很多没来得及消化的页面链接,写入了我的在线 ...

  9. 神奇彩带KMP

    描述 有两条彩带A,B,如果能制作出一条彩带,这条彩带既是彩带A的前缀,又是彩带B的后缀,称之为神奇彩带 草滩小王子想送一条最长的神奇彩带给拉面女神 给你两条彩带,你能找到最大的神奇彩带的长度是多少吗 ...

  10. Magneto插件整理

    以connect20.magentocommerce.com开头的是connect 2.0的key.有些网页打不开了.但是connect的地址经测试是可用的. Mangento 免费团购模块 http ...