winforms winform更改实际框的复选框颜色[duplicate]

wztqucjr  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(216)

此问题在此处已有答案

How can I change the color of the check mark of a CheckBox? [duplicate](2个答案)
How to increase the size of checkbox in WinForms?(8个答案)
去年关闭了。
有没有办法改变winform的复选框中包含复选标记的框的颜色?

问题是更改框的背景颜色,而不是复选标记。

58wvjzkj

58wvjzkj1#

没有一个直接的方法可以做到这一点。
如果您必须使用winforms,最简单的方法是模仿Button并使用图像。
为此,请将CheckBoxes属性编辑为以下内容。

  • 外观:Normal-〉Button
  • 平面样式:Standard-〉Flat
  • 平面外观,边框大小:1 -〉0
  • 平面外观,所有颜色:父容器的背景颜色,通常为Control
  • 文本图像关系:Overlay -〉ImageBeforeText
  • 图像:加载未选中框的图像

然后在每个CheckBox的事件处理程序CheckedChanged中,我们将图像从未选中的框更改为选中的框,反之亦然,如下所示:

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    CheckBox currentCheckBox = (sender as CheckBox);
    if (currentCheckBox.Checked)
    {
        currentCheckBox.Image = Properties.Resources._checked;
    }
    else
    {
        currentCheckBox.Image = Properties.Resources._unchecked;
    }
}

或者更短:

private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
    (sender as CheckBox).Image = (sender as CheckBox).Checked ? Properties.Resources._checked : Properties.Resources._unchecked;
}

结果应该是这样的:Result

相关问题