6

Windows 上有没有办法检索用作非活动控件(TextBox等)的背景颜色的颜色?或者更好的是,边框颜色也是?

这是针对 Windows 窗体的,我无法在SystemColors. 哪有这回事

举个例子。我有一个文本框,它可能不足以容纳它所包含的文本并且它被禁用。当它被禁用时,用户无法滚动查看整个文本,而且出于明显的原因,我什至无法显示工具提示。

所以我现在所做的是将TextBox'ReadOnly属性设置为true允许我显示工具提示并使控件可滚动。客户端现在希望文本框看起来像是被禁用了;ReadOnly是一个非常讨厌的属性,因为它看起来仍然可以编辑。所以我认为在其中放置适当的背景颜色可能足以愚弄大多数用户。我不能使用任意灰度值,因为该表单上还有其他禁用的控件,并且可能会注意到颜色差异。那么有没有办法可以找出禁用的控件是如何呈现的?背景颜色和边框颜色或至少前者在这里应该足够了,但我不想猜测。有问题的平台很可能是 XP 和 Vista,可能有或没有主题。

埃塔:无视。这个问题很愚蠢,代表我的错误我应该早点发现。单个 TextBox 不会坚持灰色背景,这有点奇怪。

4

2 回答 2

25

禁用时,文本框有背景色SystemColors.Control和前景色SystemColors.GrayText

于 2009-12-10T16:44:11.290 回答
4

尝试这个:

        treeView1.EnabledChanged += (s, o) =>
            {
                treeView1.BackColor = treeView1.Enabled ? Color.White : SystemColors.Control;
            };
于 2012-09-10T01:31:57.967 回答