You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WinForm中如何修改CheckBox控件勾选框的背景颜色

关于WinForm中自定义CheckBox勾选方框背景色的实现方案

在WinForm开发中完全可以修改CheckBox控件承载勾选标记的方框背景色,且不需要依赖第三方组件,以下是两种常用的落地方法:


方案1:使用原生Flat样式属性快速设置(无需自定义控件)

这种方法操作最简单,适合基础定制需求:

  • 将CheckBox控件的FlatStyle属性设置为FlatStyle.Flat
  • 直接修改FlatAppearance.CheckBoxBackColor属性为你需要的背景色即可,该属性控制的就是承载勾选标记的方框的背景色,不会影响勾选标记本身的显示颜色
  • 如果需要调整方框边框样式,还可以配套修改FlatAppearance.BorderColor、FlatAppearance.BorderSize属性

示例代码(窗体加载时赋值):

checkBox1.FlatStyle = FlatStyle.Flat;
// 设置勾选方框的背景色为浅蓝
checkBox1.FlatAppearance.CheckBoxBackColor = Color.LightBlue;
// 可选:设置方框边框颜色为灰色
checkBox1.FlatAppearance.BorderColor = Color.Gray;

方案2:自定义CheckBox控件重绘(高度灵活)

如果需要更复杂的样式定制,比如圆角方框、渐变背景等,可以通过继承CheckBox重写OnPaint方法实现:

  1. 新建自定义类继承自CheckBox控件
  2. 添加自定义属性BoxBackColor专门用于控制方框背景色
  3. 重写OnPaint方法,自行绘制方框背景、边框、勾选标记

示例代码:

public class CustomCheckBox : CheckBox
{
    // 自定义方框背景色属性
    public Color BoxBackColor { get; set; } = Color.White;

    public CustomCheckBox()
    {
        // 开启用户自绘、消除绘制闪烁
        this.SetStyle(ControlStyles.UserPaint, true);
        this.DoubleBuffered = true;
    }

    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        e.Graphics.Clear(this.BackColor);
        // 绘制控件文本
        e.Graphics.DrawString(this.Text, this.Font, new SolidBrush(this.ForeColor), 18, 1);
        
        // 绘制方框背景(可自定义为纯色、渐变等任意效果)
        Rectangle boxRect = new Rectangle(0, 1, 14, 14);
        e.Graphics.FillRectangle(new SolidBrush(BoxBackColor), boxRect);
        // 绘制方框边框
        e.Graphics.DrawRectangle(new Pen(Color.Gray, 1), boxRect);
        
        // 勾选状态时绘制勾选标记,颜色可单独设置,不会和背景色冲突
        if (this.Checked)
        {
            e.Graphics.DrawString("✓", new Font("Arial", 10, FontStyle.Bold), new SolidBrush(this.ForeColor), 0, 0);
        }
    }
}

编译项目后即可在工具箱中直接使用这个CustomCheckBox控件,修改BoxBackColor属性即可调整方框背景色。


内容的提问来源于stack exchange,提问作者Lightsout

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 07:21:02