0

VB.NET / Win 表格 / 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>

一切都停靠在其父级上。这一切都非常流畅。因此拆分器停靠在主选项卡中(填充模式),选项卡控件停靠在其他选项卡控件中(填充模式),等等。

我认为它只是在调整窗口大小时试图重新计算控件的位置给系统带来很大的负担。

关于完全重新设计软件我能做些什么的任何建议?

4

1 回答 1

1

不幸的是,这对于 WinForms 应用程序来说是正常的,尤其是那些有很多嵌套容器的应用程序。

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

调整 c# windows 窗体大小时防止窗口重绘

于 2013-01-15T20:10:37.553 回答