在Windows上是否有办法检索用作非活动控件(TextBox
等)的背景颜色的颜色?或者更好的是,边框颜色呢?
这适用于Windows窗体,但我无法在SystemColors
中找到合适的内容。没有这样的东西
例证。我有一个文本框,可能不足以容纳它所持有的文本并被禁用。当它被禁用时,用户无法滚动查看整个文本,我甚至无法显示工具提示for obvious reasons。
所以我现在所做的是将TextBox
的{{1}}属性设置为ReadOnly
,这允许我显示工具提示并使控件可滚动。客户端现在希望文本框看起来像被禁用; true
是一个非常讨厌的属性,因为它仍然看起来就像它可以编辑一样。所以我认为在那里放置适当的背景颜色可能足以欺骗大多数用户。我不能使用任意灰度值,因为该表单上还有其他禁用控件,可能会注意到颜色差异。那么我有没有办法找出如何呈现禁用的控件?背景颜色和边框颜色或至少前者应该在这里足够,但我宁愿不猜。有问题的平台很可能是XP和Vista,可能有或没有主题。
ETA:无视。这个问题很愚蠢,我本来应该发现一个错误。单个TextBox不会粘附在灰色背景上,这有点奇怪。
答案 0 :(得分:23)
禁用后,文本框的背景颜色为SystemColors.Control
,前景色为SystemColors.GrayText
。
答案 1 :(得分:3)
试试这个:
treeView1.EnabledChanged += (s, o) =>
{
treeView1.BackColor = treeView1.Enabled ? Color.White : SystemColors.Control;
};