如何正确呈现Control.Enabled = false?

时间:2009-11-04 10:01:32

标签: c# .net winforms

我有几个自定义用户控件,可以显示文本或其他一些元素,并且可以自定义呈现(通过覆盖OnPaint)。现在,当它们的Enabled属性设置为false时,正常的.NET控件(例如Labels等),灰显和'look'被正确禁用。我的自定义组件没有,但仍然显得非常活跃。

我不是100%确定使用哪些属性或颜色来表示等效的“禁用”状态,有人知道吗?

干杯

2 个答案:

答案 0 :(得分:2)

使用ControlPaint.DrawTextDisabled& ControlPaint.DrawImageDisabled方法。

答案 1 :(得分:0)

禁用的控件通常是灰色的,用户无法与它们进行交互。

例如,禁用的TextBox的背景将为灰色,用户无法在TextBox中设置焦点或编辑或选择文本。禁用的DropDownList将具有灰色背景,用户将无法通过单击弹出列表。

我建议坚持这个惯例,但它可能适合也可能不适合您的控件设计。也许如果你发布一些截图,可以提供更多相关的答案。