控件过多闪烁问题
1.窗体有背景
2.窗体上所有图片都是Label控件,并且有鼠标移动切换图片事件和点击事件
3.每页控件数目蛮多的,最少8个,多的话有30个左右
试过很多办法,其中如果窗体无背景效果不错,但是窗体一定要有背景。
如果用PictrueBox做背景,效果不错,但是Label图片内容不规则透明的地方直接显示窗体背景色,也就是说直接把背景的PictureBox的颜色给透明了,也不可以。
双缓冲的话我想不到什么好方法可以应用,内部类似
this.DoubleBuffered = true;
SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
的设置也都没有效果,API "lockWindowUpdate "也不行。
希望各位大侠帮助了,小弟先谢过。
下面是我的一个测试的代码,没有做任何时间,显示窗体时闪烁的也很厉害。
public Form1()
{
InitializeComponent();
this.DoubleBuffered = true;
SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
}
private void Form1_Load(object sender, EventArgs e)
{
this.Width = 1024;
this.Height = 768;
this.BackgroundImage = Image.FromFile(@ "E:\LinZhi\Image\2006116203724.6780804.jpg ");
Label[] lbl = new Label[220];
for (int i = 0; i < 220; i++)
{
lbl[i] = new Label();
lbl[i].Image = Image.FromFile(@ "E:\LinZhi\Bmp\1172423753636.jpg ");
lbl[i].Left = i % 10 * 110;
lbl[i].Top = i / 10 * (lbl[i].Height + 10);
this.Controls.Add(lbl[i]);
}
}
项目基本已经完工,希望尽量少的改动可以实现无闪烁,谢谢。
QQ:33871551 工作时都在线,希望知道怎么做的可以教下。
------解决方案--------------------file读一次保存到内存中看看会不会好一点.
------解决方案--------------------控件在界面上多了以后会闪的历害,这时设置Optimized