当我在VS2008 Winforms项目中禁用某些Button控件时,我遇到了一些不一致的行为。
当我设置Enabled = false
时,按钮被禁用,但某些(但不是全部)按钮的文本保持黑色。
我希望所有按钮在禁用时显示灰色文本 - 这使用户更容易看到按钮被禁用。
如果将按钮放在GroupBox中,似乎更有可能发生,但我不确定是否总是如此。
我猜测Button的某些属性组合,和/或包含它的Form或GroupBox的属性组合都会导致这种情况,但我看不出任何有意义的模式。
编辑:我们拥有自己的外观,并将包含表格的BackColor设置为不同的颜色。
任何人都可以解释为什么会这样吗?
答案 0 :(得分:-1)
问题是因为Form的BackColor设置为不同的颜色。
一些谷歌搜索透露,其他许多人都遇到过这种情况。提出的解决方案非常复杂 - 继承自己的按钮控件并覆盖OnPaint等。但事实证明有一个简单的解决办法......
当您将按钮添加到表单时,按钮的BackColor属性将设置为与Form的BackColor相同的值,尽管不会在设计或运行时以这种方式显示。< / p>
如果您将按钮的BackColor属性设置为System - &gt; ControlLight ,它将解决问题 - 禁用的按钮现在看起来已禁用。
请注意,重置BackColor时会出现奇怪的怪癖 - UseVisualStyleBackColor属性将从True更改为False。但这似乎没有任何效果,可以改变回True而不会以任何方式影响外观。