【发布时间】:2011-07-20 18:34:34
【问题描述】:
当我在我的 VS2008 Winforms 项目中禁用某些 Button 控件时,我遇到了一些不一致的行为。
当我设置Enabled = false 时,按钮被禁用,但一些(尽管不是全部)按钮的文本保持黑色。
我希望所有按钮在禁用时显示灰色文本 - 这使用户更容易看到按钮被禁用。
如果按钮放在 GroupBox 中似乎更有可能发生,但我不确定情况是否总是如此。
我猜是 Button 的某些属性组合,和/或包含它的 Form 或 GroupBox 的属性组合导致了这种情况,但我看不出任何有意义的模式。
编辑:我们有自己的外观和感觉,并且正在将包含表单的 BackColor 设置为不同的颜色。
谁能解释为什么会发生这种情况?
【问题讨论】:
-
你能发一些示例项目吗,这个问题在哪里?我无法重现这种行为。
-
我可以试试。怎么寄给你?
-
显而易见的解决方法是使用默认系统主题。它们总是正确地绘制,它们可由用户定制,并且它们对用户来说是舒适/熟悉的。手动更改颜色永远没有任何借口。
-
@Cody - 提供更多信息作为答案,我会投票给你。虽然我从您的个人资料中看到您并不真正需要代表,并且您对系统主题有一点偏见......
-
@Tom:是的,我同意 99% 的用户的偏见。我喜欢系统主题的原因是因为它们会自动解决这样的问题。请记住,在您的应用中自定义一些颜色而将其他颜色留给系统主题几乎不是一个好主意。如果我设置了高对比度主题,那么这些颜色很可能会与您的自定义颜色发生冲突并使您的应用程序无法使用。就像您在此处观察到的那样,用户期望各种各样的东西,例如禁用的按钮呈现“灰显”的外观,而过多的自定义可能/确实会干扰这一点。
标签: winforms visual-studio-2008 button