Form动态添加PictureBox,图片闪烁问题

上下的上 2012-06-07 07:58:24
c#应用程序,在Form中动态添加几个PictureBox,设置背景透明,图片大小100*100,运行程序,能看出图片是一张一张加载的。
切换窗口到别的程序再切回来(其他什么操作都没有),图片也是一张一张的加上的。

求解决方案,拜谢啦~~~~
...全文
435 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
上下的上 2012-06-08
  • 打赏
  • 举报
回复
SocketUp,还是一样的
SocketUp 2012-06-08
  • 打赏
  • 举报
回复
private void button1_Click(object sender, EventArgs e)
{
PictureBox[] ps = new PictureBox[15];
for (int i = 0; i < 15; i++)
{
ps[i] = new PictureBox();
ps[i].Image = Image.FromFile(""); ;
ps[i].Size = new Size(100, 100);
ps[i].Location = new Point(i * 100 + 20, 0);
ps[i].BackColor = Color.Transparent;
}
panel1.SuspendLayout();
panel1.Controls.AddRange(ps);
panel1.ResumeLayout();
}

private void Form1_Load(object sender, EventArgs e)
{
this.DoubleBuffered = true;
}
上下的上 2012-06-08
  • 打赏
  • 举报
回复
这是连续显示的代码,还稍好一些,但正式窗体上还有其他不是动态生成的一些图片,而动态生成的这部分也是分行且有间距的,这样一来,闪的就很明显了
上下的上 2012-06-08
  • 打赏
  • 举报
回复
for (int i = 0; i < 15; i++)
{
PictureBox p = new PictureBox();
p.Image = (Image)WindowsFormsApplication1.Resource1.UserManageUnActive;
p.Size = new Size(100, 100);
p.Location = new Point(i * 100 + 20, 0);
p.BackColor = Color.Transparent;

panel1.Controls.Add(p);
}
上下的上 2012-06-08
  • 打赏
  • 举报
回复
avphoenixi,就是在循环里面new一个控件,然后从资源文件中加载图片

LOVE_GG,picbox要设置背景透明的,如果背景用纯色的话,是会快很多,但还是够要命的,delphi为什么就没这个问题。。。
lqkankan 2012-06-08
  • 打赏
  • 举报
回复
代码写出来 看看顺序对不对
上下的上 2012-06-08
  • 打赏
  • 举报
回复
切换窗口,我换别的机器试了下,是不刷新的,不知道为什么。但最小化后再恢复,包括刚运行时,都是一张张加载的。
另外ControlStyles.OptimizedDoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw 也都设置了...
LOVE_GG 2012-06-08
  • 打赏
  • 举报
回复
这种问题在winform中极其常见,刷新、重绘都会遇到闪烁问题,悲催的是没有好的解决办法,我都苦恼了很长时间了。不过lz可以尝试封装一下picturebox,就是自定义控件里面放的picturebox,然后把自定义控件的背景颜色设置成你放置很多picturebox的容器一样的背景颜色,比如white.这样效果会好很多,几乎看不出闪烁,你可以试试
上下的上 2012-06-08
  • 打赏
  • 举报
回复
SocketUp 的方法,如果不用transparent的话是ok的,结贴啦。
sankyoku 2012-06-07
  • 打赏
  • 举报
回复
我在做相机调试程序时也发生拖烂现象
__天涯寻梦 2012-06-07
  • 打赏
  • 举报
回复
动态添加 PictureBox 的代码是怎样的?

110,529

社区成员

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

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

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