yinzhm 发表于 2014-7-15 10:23:00

MouseOver时的颜色

好!
MultiRow For WinForms 7.0
需求:希望得到如下效果,鼠标悬停在ColumnFooter上时的颜色(MouseOverBackColor),和ColumnFooter默认的颜色一致(BackColor),也就是希望鼠标在ColumnFooter上移动时看不出颜色的变化。

我的做法:
(1)我需要将FlatStyle修改为Flat
(2)修改FlatAppearance的MouseOverBackColor等是可以达到我要的效果的。

问题:
以上方案我用不上啊,我需要在代码中动态改变ColumnFooter的背景色,这时FlatAppearance属性是不可见的,设置不了。
于是我尝试设置Style.MouseOverBackColor。但是,又有一个问题,即使我将Style.MouseOverBackColor与ColumnFooter的背景色设置的完全一致,实际上看到的效果也不同。

鼠标悬停时的颜色会显得比较亮。

斑竹有什么建议,不吝赐教!!!!

Alice 发表于 2014-7-15 18:29:00

回复 1楼yinzhm的帖子

你好,问题已经收到。
测试后给你回复。

dafo 发表于 2014-7-15 19:16:00

Style.MouseOverBackColor是一个和系统背景色进行叠加计算的颜色,所有和你实际设置的颜色不是很一致。
你可以用FlatAppearance的MouseOverBackColor来实现你的Case,这个属性是可以动态设置的,看下边代码:

(this.gcMultiRow1.ColumnFooters as HeaderCell).FlatAppearance.MouseOverBackColor = Color.Red;

yinzhm 发表于 2014-7-16 16:51:00

回复 3楼dafo的帖子

非常感谢!

测试可用。

Alice 发表于 2014-7-17 18:26:00

回复 4楼yinzhm的帖子

好的。
问题解决。此贴结贴。
页: [1]
查看完整版本: MouseOver时的颜色