我试图在应用程序关闭时保存System::Windows::Forms::Form
的状态。我可以记录窗口的大小、位置和窗口状态,但如果窗口在关闭时处于最大化状态,则::Size
成员记录窗口的最大化大小。
有没有办法记录非最大化大小,或者我需要拦截最大化事件并手动记录呢?
这不是一件容易的事情,你需要使用P/Invoke GetWindowPlacement来实现。最好的方法是只有在窗体处于正确状态时才记录窗口大小。例如:
protected override void OnResize(EventArgs e) {
if (this.WindowState == FormWindowState.Normal)
Properties.Settings.Default.WindowSize = this.Size;
base.OnResize(e);
}