winforms - 如何获取表单的非最大化窗口大小?

标签 winforms c++-cli settings save

当我的应用程序关闭时,我试图保存 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);
    }

关于winforms - 如何获取表单的非最大化窗口大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3102311/

相关文章:

java - 在制作设置文件时需要帮助

c# - 取消选择数据 GridView 中的所有行

c# - 如何限制文本框仅接受特定字符

c# - 动态添加控件到用户控件

wcf - 如何修复 SvcUtil 为 C++/CLI WCF 客户端生成错误的代码?

android - 如何在android中编写清除电子邮件客户端设置的代码?

ios - Apple是否允许从设置中使用注销功能?

vb.net - VB流行颜色选择器

.net - 在 C++ 中实现 GetEnumerator

visual-studio-2010 - 从托管代码中包含时未定义 shared_ptr