提问人:Patrick McDonald 提问时间:4/17/2009 最后编辑:Peter MortensenPatrick McDonald 更新时间:2/19/2020 访问量:16344
如何重置 .NET Windows 窗体 TextBox BackColor 属性?
How do I reset a .NET Windows Forms TextBox BackColor property?
问:
a 属性的默认行为如下:启用时为 (),禁用时为 Gray(不确定这是什么 SystemColor)。BackColor
TextBox
White
SystemColors.Window
如果我更改该属性,则 Enabled 和 Disabled 将使用相同的颜色。如何重置属性(在之前更改属性后)以使行为恢复为默认值?BackColor
BackColor
我尝试将其设置回 ,但禁用后该框保持白色。SystemColors.Window
答:
1赞
Adam Alexander
4/17/2009
#1
如果无法重置控件,因此它将在启用/禁用时返回自动更改其背景颜色,我建议使用该事件来设置所需的启用/禁用
背景颜色。我希望这对您有所帮助!UIElement.IsEnabledChanged
评论
0赞
dustyburwell
4/17/2009
我想你的答案可能是在谈论使用WPF时。他的问题针对的是winforms(基于标签)
0赞
Patrick McDonald
4/17/2009
+1 谢谢亚当,这几乎就是我正在做的事情,我选择了这里发布的另一个解决方案,因为它很可能适用于非标准配色方案。
3赞
Adam Robinson
4/17/2009
#2
SystemColors.Window
(通常)是白色的。用。SystemColors.Control
当然,当您将正在使用的颜色设置为您自己的颜色时,您可以缓存它,然后使用它来重置它。不过,最终,这两种方法都会奏效。
评论
0赞
kralco626
7/23/2010
缓存颜色始终是一个好主意:)以便您可以将其恢复到以前的状态。虽然这是一个困难的解决方案,但当你说,在 5 或 6 种颜色之间旋转。
6赞
Alex Ruse
4/17/2009
#3
TextBox.ResetBackColor()
由于某种原因,它不会在 IntelliSense 中弹出,但它就在那里并进行了编译。
评论
1赞
Adam Robinson
4/17/2009
我可能会避免这种情况,因为“Reset[PropertyName]”函数是序列化框架的一部分。除非有令人信服的理由,否则我会避免使用有意从 Intellisense 中排除的函数。
0赞
Patrick McDonald
4/17/2009
+1 为此,我选择了@ascalonx的解决方案,尽管出于罗宾逊提到的原因(至少你的解决方案有效,不确定亚当服用了什么药物)@Adam;)
0赞
marky
4/3/2020
@Alex Ruse,这也是为我编译的(也没有在 Intellisense 中显示),但在运行时实际上不起作用 - 背景色保持它在程序中其他地方设置的颜色。
40赞
dustyburwell
4/17/2009
#4
如果你的意思是在设计器中,你可以只单击BackColor属性并删除其中的任何内容,然后按Enter键。这会将属性重置回其默认值。
如果你的意思是在代码中,你可以将 BackColor 属性设置为 Color.Empty,这将产生相同的效果。
评论