在winform上添加用户控件过多时出现闪烁
我做了一个用户控件,在一个winform上根据表的行数动态增加用户控件,一行就一个用户控件,但当这个表有几百行数据时,刷新数据还没什么问题,但是窗体一失去焦点再获得焦点时...
我做了一个用户控件,在一个winform上根据表的行数动态增加用户控件,一行就一个用户控件,但当这个表有几百行数据时,刷新数据还没什么问题,但是窗体一失去焦点再获得焦点时,窗体的用户控件才一个个的出现,几百个用户控件一个一个的出现这个问题太严重了!各位高手有什么绝招教教!
areshh你好:
我这个表的图片什么的全都是加载在内存上的了!我的那个用户控件只有几个panel 几个label和textbox,我试过不动态加这个用户控件,而是用手动的拖了100个左右出来!什么数据也没加上去,但是还是一个一个的刷出来!
christiankula你好:UserControl没有BeginUpdate和EndUpdate这2个方法啊 展开
areshh你好:
我这个表的图片什么的全都是加载在内存上的了!我的那个用户控件只有几个panel 几个label和textbox,我试过不动态加这个用户控件,而是用手动的拖了100个左右出来!什么数据也没加上去,但是还是一个一个的刷出来!
christiankula你好:UserControl没有BeginUpdate和EndUpdate这2个方法啊 展开
展开全部
好像有一个什么Style的什么东东,开启一下双缓冲,就是控制刷新的
this.SetStyle(ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
this.UpdateStyles();
不过几百个控件,你的问题恐怕也没办法从根本上解决,我的方案就是在加载之前先把整个Form给Visable掉,加载完了再显示出来,不过这也是从视觉效果上看起来不闪烁了而已
你可以试试BeginUpdate和EndUpdate,不过几百个控件,想像中肯定效率不佳,可是也不至于这么不佳
this.SetStyle(ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
this.UpdateStyles();
不过几百个控件,你的问题恐怕也没办法从根本上解决,我的方案就是在加载之前先把整个Form给Visable掉,加载完了再显示出来,不过这也是从视觉效果上看起来不闪烁了而已
你可以试试BeginUpdate和EndUpdate,不过几百个控件,想像中肯定效率不佳,可是也不至于这么不佳
展开全部
几百个控件应当不会有那么卡,
你检查下控件看有没有加载IO操作、数据库操作、网络操作等耗资源的,特别是控件里面可能用了图片,而图片是保存在磁盘上的资源的,如果那样的话就要把那些图片改为加载后就保存在内存上。
你检查下控件看有没有加载IO操作、数据库操作、网络操作等耗资源的,特别是控件里面可能用了图片,而图片是保存在磁盘上的资源的,如果那样的话就要把那些图片改为加载后就保存在内存上。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以像搂上说的加好后再显示,不过最好还是控制下,做个翻页,少显示几个比较好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询