关于Panel中的背景图无法显示的问题

Tilter 2016-02-23 05:37:18
做了一个Form,其中放置了一个User Control: A,
1. A中放了一个Panel,设置了Panel的BackgroundImage;
2. Panel中又放置了一个User Control:B(用作List); B的BackColor设置为Transparent
3. B中有放置了一些User Control: C(用作List Item)

为解决闪烁的问题,在B中添加了如下代码:
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000; // Turn on WS_EX_COMPOSITED
return cp;
}
}

这在Win7上运行正常,但是到了XP中,Panel中设置的BackgroundImage无效,见附件。
请问各位高手是什么缘故,该怎么解决?
...全文
431 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tilter 2016-02-24
  • 打赏
  • 举报
回复
终于解决这问题了,原因是我为User Control B开启了双缓冲属性(this.DoubleBuffered=true),但是User control C没有开启这个属性,我把C也开启这个属性后,问题就解决了。
Tilter 2016-02-24
  • 打赏
  • 举报
回复
引用 1 楼 FoxDave 的回复:
应该不是无效,XP就是那样的
谢谢答复。 我如果不加这段代码,显示是正确的,但是在拖动滚动条的时候,会发生刷新严重的迟滞的现象。
Justin-Liu 2016-02-24
  • 打赏
  • 举报
回复
应该不是无效,XP就是那样的

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧