c#动态生成控件时生成的控件闪动问题

c#动态生成控件时生成的控件闪动,即当点击一个按钮动态生成一组按钮时,生成过程中这一组按钮有闪动,应该怎么解决呢?

第1个回答  2013-10-06
窗体重绘,必然要有闪烁的
试试开启窗体的双缓冲属性,减少添加的控件的数量可能会有改善
另外和机器的配置也有关系,快的机器闪烁肉眼不好分辨,感觉就和没闪追问

我开启了,就是动态生成了40个按钮而已,感觉闪的厉害,怎么处理

追答

我也遇到过这问题,查过很多办法了,都解决不了
另外就是有个这情况,如果放置控件的面板设置有透明效果的话,闪烁会更加严重,但关了面板的透明效果就不闪了

第2个回答  2013-10-06

如果你之前是用Controls.Add这种单个的增加,那试试先定义好数组,比如

Button[] btnlist=new Button[10];
for(int i=0;i<btnlist.Length;i++)
{
Button btn=new Button();
//其它赋值
btnlist[i]=btn;
}
//批量增加
Controls.AddRange(btn);

追问

我就是定义的数组,这种方法早就试过了,还是不行,我指的是按钮加载时不能一次全部显示,而是有点微微闪动,这该怎么解决呢?

追答

那就在窗体上放一个visible为false的panel,在窗体初始化的时候把控件添加到这个panel里,添加完后再将它的visible改为true

追问

好像不是这个原因,我是在一个mdi子窗体中生成的动态按钮,然后点击父窗体中的按钮让这个窗体显示而是,按钮应该是都加载完成,只是在form.Show();执行之后会出现闪动,这是什么原因呢?

本回答被提问者和网友采纳