【发布时间】:2010-12-07 08:30:42
【问题描述】:
当控件被禁用时如何更改文本的颜色。我想在 c# winforms 中禁用控件时设置不同的颜色。
【问题讨论】:
-
哪种类型的控件?不同控件的行为方式不同,您需要以不同方式处理这些情况。
当控件被禁用时如何更改文本的颜色。我想在 c# winforms 中禁用控件时设置不同的颜色。
【问题讨论】:
编辑:我在 cmets 中犯了与 Cody 相同的错误,因此更正了我的答案。
这取决于它是哪个控件。
例如,如果它是 TextBox,也许您可以将其设为 ReadOnly 而不是禁用。对于其他一些控件,您也许可以执行类似的操作,使它们看起来已禁用,但实际上并未被禁用。
但是,如果您想正确地执行此操作,则需要将它们设为 Owner-draw 或覆盖 OnPaint 事件并自己绘制文本。
【讨论】:
Paint 事件。我显然意识到这并不完全相同,但它是您至少需要处理标签、文本框和按钮的方式。 ControlPaint 类可以让这不那么痛苦。
您可以手动进行 - 当您禁用控件时,也只需更改文本颜色?
【讨论】:
TextBox,这将不起作用。你只能在它被禁用时更改它的BackColor,而不是它的ForeColor(即文本颜色)。
如果你有很多控件,你可以这样做:
这样,您将拥有一段适用于所有表单的代码,并将逐渐扩展以使用您需要的所有控件。
如果你想这样做,我会提供一些代码......
【讨论】: