用户界面懒散。调整应用程序窗口的大小可以最大限度地利用cpu

时间:2013-01-15 19:48:32

标签: c# .net vb.net winforms visual-studio-2008

VB.NET / Win forms / VS 2008

我正在开发一些软件,到目前为止我对UI设计非常满意..非常结构化且易于阅读..但是当我调整窗口大小时,它非常“滞后”。当我观察任务管理器时,在调整窗口大小时CPU占用率达到25%(使用100%的核心)(未调整大小时为0%)。如果那样,它会以每秒4帧的速度重新绘制窗口。

这是一个相当复杂的用户界面,但无论如何都没有什么疯狂的。我不觉得它应该像这样运行。

我的布局层次结构看起来像这样:

<FORM>
    <TABCONTROL> (first tab example, subsequent tabs follow the same control hierarchy)
        <SPLITCONTAINER>
            <PANEL 1>
                <DATAGRIDVIEW />
            </PANEL 1>
            <PANEL 2>
                <TABCONTROL>
                    <TABCONTROL>
                        <TABCONTROL>
                            Lots of data fields in these tabs
                        </TABCONTROL>
                    </TABCONTROL>
                </TABCONTROL>
            </PANEL 2>
        </SPLITCONTAINER>
    </TABCONTROL>
</FORM>

一切都停靠在其父母身上。这一切都很流畅。因此分割器在主选项卡中停靠(填充模式),tabcontrols停靠(填充模式)在其他tabcontrols等中。

我认为只是在调整窗口大小时试图重新计算控件位置的系统上施加了很大的负担。

关于如何完全重新设计软件,我可以做些什么的建议?

1 个答案:

答案 0 :(得分:1)

不幸的是,这对于WinForms应用程序来说是正常的,特别是那些具有大量嵌套容器的应用程序。

但是,有一个“解决方法”,涉及在表格即将调整大小并调整大小后调用暂停和恢复布局:

Prevent window redraw when resizing c# windows forms