• 大小: 9KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: C#
  • 标签: Checkbox  

资源简介

C#复选框重绘 ,重写的Checkbox,支持选框大小调整、选框图像替换等,适合学习使用

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using System.ComponentModel;
using System.Drawing.Drawing2D;

namespace WControls
{
    [ToolboxBitmap(typeof(CheckBox))]
    public class WCheckBox : CheckBox
    {
        public WCheckBox() : base()
        {
            Setstyle(Controlstyles.UserPaint |
              Controlstyles.AllPaintingInWmPaint |
              Controlstyles.OptimizedDoubleBuffer |
              Controlstyles.ResizeRedraw |
              Controlstyles.SupportsTransparentBackColor true);

            this.BackColor = Color.Transparent;

            baseImage = ResourceReader.GetBitmapResource(“checkbox“);//状态图像
            this.AutoSize = false;
        }

        #region public


        [Category(“Custom“) Description(“选框状态的背景图像该图像包含5个状态正常、划过、选中、未选不可用,选中不可用,图像总宽度应不小于baseImageSplitWidth*5“) Browsable(true)]
        public Bitmap baseImage
        {
            get { return baseImage; }
            set
            {
                if (value != baseImage)
                {
                    baseImage = value;
                    base.Invalidate();
                }

            }
        }

        [Category(“Custom“) Description(“背景图像分割的宽度即每个状态图像的宽度“) Browsable(true) DefaultValue(88)]
        public int baseImageSplitWidth
        {
            get { return baseImageSplitWidth; }
            set
            {
                if (value != baseImageSplitWidth)
                {
                    baseImageSplitWidth = value;
                    this.Invalidate();
                }

            }
        }

        [Category(“Custom“) Description(“选框的大小“) Browsable(true) DefaultValue(typeof(Size) “20“)]
        public int BoxWidth
        {
            get { return this.boxSize.Width; }
            set
            {
                if (boxSize.Width != value)
                {
                    boxSize = new Size(value value);
                    this.Invalidate();
                }
            }
        }

        public override bool AutoSize
        {
            get { return base.AutoSize; }

            set
            {
                base.AutoSize = false;
            }
        }

        /// 
        /// 选框的绘制方式
        /// 

        public enum DrawMode
        {
            /// 
            /// 绘制
            /// 

            Draw
            /// 
            /// 使用图像绘制
            /// 

            Image
        }

        [Category(“Custom“) Description(“checkbox的绘制方式“) Browsable(true) DefaultValue(typeof(DrawMode) “Image“)]
        public DrawMode BoxDrawMode
        {
            get
            {
                return this.drawMode;
            }
            set
            {
                if (this.drawMode != value)
                {
                  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       21796  2018-10-08 15:49  checkbox\WCheckBox.cs
     文件        5871  2018-06-28 11:04  checkbox\状态.png
     目录           0  2018-10-08 15:50  checkbox\

评论

共有 条评论