c#进行winform应用开发,如何能加快窗口控件的加载速度,甚至异步加载,体验丝滑?

关注者
47
被浏览
69,111

12 个回答

一般来说,打开双缓存就能解决90%的界面问题。

对于窗口,添加如下过程:

private void EnableDoubleBuffering()
    SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
    UpdateStyles();

在窗口建构过程调用一下即可。

对于重点刷新的控件,比方说DataGridView,ListView,TreeView等数据容器,最好是继承一下重写一个用户控件,仍然把以上过程在用户控件里调用一下。

进一步,可以在窗体或者重点刷新控件的继承者中重写消息窗口过程,禁用清除背景:

protected override void WndProc(ref Message m)