如何在winforms中更改禁用复选框的前景色

Ami*_*mar 5 c# checkbox groupbox winforms

我在具有表单的Windows应用程序中工作.此表单包含一个具有一些复选框的组框.我已将此组框设置为禁用.现在我的问题是复选框文本的前色.它变成浅灰色,如下图所示.

在此输入图像描述

如何更改复选框文本的前景颜色,使其看起来不像禁用(浅灰色).

E_B*_*lue 10

不要禁用它,只需将AutoCheck属性设置为False即可


Sin*_*atr 0

您已经拥有所有者绘制的内容 CheckBox(或者它是某人的组件),因此用所需的颜色绘制其文本的解决方案,忽略Enabled价值,是正确的解决方案。

另一种可能性是不禁用CheckBox'es 的父容器,那么有很多可能性:

  • 不要禁用GroupBox(这是有原因的,用户习惯使用它);
    • 防止CheckBox'es 以某种方式被单击(尽管这不是要求):通过设置AutoCheck为 false,通过将Checked值恢复回OnCheckedChanged;
  • 不要在禁用的内部托管控件GroupBox(闻起来很hacky ^^):
    • 使用浮动面板,GroupBox位于下方而不是父级;
  • 不使用GroupBox
  • 使用自定义GroupBox