【发布时间】:2009-12-10 16:39:29
【问题描述】:
在 Windows 上是否有办法检索用作非活动控件的背景颜色的颜色(TextBox 等)?或者更好的是,边框颜色也是?
这是针对 Windows 窗体的,我无法在 SystemColors 中找到任何合适的内容。没有这种东西
举个例子。我有一个文本框,它可能不足以容纳它所包含的文本并且它被禁用。当它被禁用时,用户无法滚动查看整个文本,我什至无法显示工具提示 for obvious reasons。
所以我现在所做的是将TextBox 的ReadOnly 属性设置为true,这样我就可以显示工具提示并让控件可滚动。客户端现在希望文本框看起来像是被禁用了; ReadOnly 是一个非常讨厌的属性,因为它仍然看起来 可以编辑。所以我认为在其中放置适当的背景颜色可能足以愚弄大多数用户。我不能使用任意灰度值,因为该表单上还有其他禁用的控件,并且可能会注意到颜色差异。那么有没有办法可以找出禁用的控件是如何呈现的?背景颜色和边框颜色或至少前者在这里应该足够了,但我不想猜测。有问题的平台很可能是 XP 和 Vista,可能有或没有主题。
预计到达时间:无视。这个问题很愚蠢,代表我的错误我应该早点发现。单个 TextBox 不符合灰色背景,这有点奇怪。
【问题讨论】:
-
我认为带有“灰色”的文本框(如
SystemColors.Control)是不可编辑的,所以我不会认为这是一个问题。但如果客户这么说,那么客户这么说。 -
好吧,我不知道哪个是灰色的。他们仍然可以使用
ReadOnly = true集中控制这一事实可能对他们来说是不明显的。谢天谢地:-) -
我正要说同样的话。由于只读文本框与禁用文本框具有相同的背景颜色,因此如果您问我,它们看起来确实是只读的。
-
嗯,我做错了什么吗?我们界面上的一个特定文本框仍然有 white 背景。那是客户抱怨的怪事。再试一次。可能是设计师搞砸了一些属性分配顺序。
-
哎哟。行。设置特定的背景颜色会覆盖 ReadOnly 设置的背景颜色。即使设置了背景颜色 before ReadOnly 设置。碰巧的是,背景颜色设置为 Window。