如何获得将(.net)表单还原到的状态?

时间:2020-03-06 14:42:16  来源:igfitidea点击:

我有一个Windows应用程序,我想在会话之间保存大小,位置和WindowState。但是有一个警告。如果关闭时的状态最小化,那么我想恢复到最后一个可见状态,即正常(如果在最小化之前是正常的)或者最大化(如果最大化)。

有财产,检查,打电话做吗?

解决方案

这是有关表单持久性和在会话之间保存窗口状态的示例。

至于在最小化窗口之前保存状态,这是我们需要通过"记住"最后两个窗口状态来处理的事情,没有属性/事件可以为我们做到这一点。

我们可以使用应用程序设置(用户范围),并且当在窗体上触发Form_Closing事件时,可以选择修改设置的方式,然后再通过Properties.Settings.Default.Save();保存设置。

我们可以在最小化/最大化之前"记住"恢复的位置。

我们可以在保存位置之前恢复窗口,这具有使窗口在关闭前闪烁的缺点。

或者,我们可以通过InterOp调用Win32函数GetWindowPlacment,它返回恢复的矩形。