当前位置:  开发笔记 > 编程语言 > 正文

当我将.NET Button的BackColor更改回其原始值时,它看起来不再相同

如何解决《当我将.NETButton的BackColor更改回其原始值时,它看起来不再相同》经验,为你挑选了1个好方法。

我有一个按钮,我想短暂地"闪烁"以引起用户的注意.我认为最简单的方法是将Button的BackColor属性更改为另一种颜色,然后再将其切换回来.所以我这样做:

this.oldColor = myButton.BackColor;
myButton.BackColor = Color.Blue;

然后在大约1/2秒之后:

myButton.BackColor = this.oldColor;

但是按钮的背景颜色最终明显比表单上的其他按钮更暗!

起初,我认为这是因为按钮的原始颜色是命名颜色(在这种情况下,"控制")有一些特殊之处,但事实并非如此.

更糟糕的是,当我myButton.BackColor在调试器中查看时,我得到了

{Name=Control, ARGB=(255, 236, 233, 216)}

这是完全正确的!但是当我拍摄截图并检查颜色时,它与其他按钮不一样!

是否有某种掩蔽?或者也许某种犹豫不决?



1> Shalom Craim..:

我找出了问题的原因.原来还有另一个属性(仅适用于Buttons和TabPages)UseVisualStyleBackColor.它控制在计算时是否使用"视觉样式" BackColor.更糟糕的是,一旦你设置了BackColor它,它就会被设置为false.所以我最后这样做了:

this.oldUseVisualStyleBackColor = myButton.UseVisualStyleBackColor;
this.oldColor = myButton.BackColor;
myButton.BackColor = Color.Blue;

当我准备重置它时:

myButton.BackColor = this.oldColor;
myButton.UseVisualStyleBackColor = this.oldUseVisualStyleBackColor;

(是的,你必须重置第BackColor一个,然后才设置UseVisualStyleBackColor.)

我不知道为什么UseVisualStyleBackColor要使用它,或为什么它会做它的功能,但它现在似乎工作.

(谢谢,马克!没有你的帮助,我不会发现这个!)

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有