Winforms-如何控制复选框颜色(类似于文本框只读)

Winforms-如何控制复选框颜色(类似于文本框只读),winforms,checkbox,readonly,Winforms,Checkbox,Readonly,在复选框上,我可以设置.Enabled=False以灰显复选框矩形和相关标签。但外观不具视觉吸引力,即标签和复选标记都变得“模糊”;(我知道我可以使用自己的标签,但这只是解决方案的一半) 如果我设置.AutoCheck=False,则颜色保持正常,但用户不知道该复选框是只读的 我想要的是一种显式控制矩形背景色的方法,以及进入其中的复选标记的颜色 这要求太高了吗?(想想文本框,我可以将背景变灰,文本仍然可以是我想要的任何颜色!)您可能需要构建自己的复选框来对其进行这种控制。不过,我会仔细考虑这是否

在复选框上,我可以设置.Enabled=False以灰显复选框矩形和相关标签。但外观不具视觉吸引力,即标签和复选标记都变得“模糊”;(我知道我可以使用自己的标签,但这只是解决方案的一半)

如果我设置.AutoCheck=False,则颜色保持正常,但用户不知道该复选框是只读的

我想要的是一种显式控制矩形背景色的方法,以及进入其中的复选标记的颜色


这要求太高了吗?(想想文本框,我可以将背景变灰,文本仍然可以是我想要的任何颜色!)

您可能需要构建自己的复选框来对其进行这种控制。不过,我会仔细考虑这是否真的是正确的事情。Windows中的复选框行为已被很好地理解。更改它只会让用户感到困惑。

最简单的解决方案可能是在复选框后面添加一个没有文本的标签。您可以将标签的颜色设置为您想要的任何颜色,还可以使用复选框上的AutoCheck属性。

通过更改禁用复选框的外观,您会混淆最终用户

好的GUI的强大之处在于提供了一致的样式,因此用户可以意识到复选框在瞬间被禁用的事实。 还请注意,当您在XP上使用自定义控制器测试一个控件时,它在Vista上的外观可能会大不相同,甚至会出现故障,无法使用


我的建议是不要试图强制改变外观,而是让应用程序更平滑地适应操作系统。

不要试图以任何方式改变基本行为,只是改变颜色。无论如何,这是我通常的做法,坚持一个标准。。。直到WPF出现。。。。