winform 怎样防止窗体闪屏!
用过双缓存,基本没啥用!
在窗体启动前将窗体隐藏,加载完后再显示,这似乎有点作用,大效果不大明显! 在单击tabcontrol控件的另一个选项卡后再单击回来,明显闪烁很大! tabcontrol控件中布局用了不少panel控件!
还一个是图片比较大! 我试过背景图片小一些,闪烁明显小一些!
请问大伙有啥办法没有! 我怀疑有循环重绘? 怎样防止重绘?举些例子,列出代码!谢谢了!
------解决方案--------------------和你的窗体设计有很大关系,比如控件太多,资源太大等等,已经你切换tab做了什么
------解决方案--------------------在tabcontrol加一个大的panel填满整个tabcontrol
把所有小panel加进去 大的panel Visible为false 最后再为true
------解决方案--------------------阻止重绘和恢复重绘。
------解决方案--------------------
[DllImport("User32.dll", CharSet=CharSet.Auto, SetLastError=true)]
internal static extern int SendMessage(IntPtr hwnd, int msg, int wParam, int lParam);
//开始对控件操作
禁止重绘:SendMessage(禁止重绘的控件.Handle, 11, 0, 0);
//对控件的操作过程
恢复重绘:SendMessage(恢复重绘的控件.Handle, 11, -1, 0);