2011-02-23 85 views
7

为了在窗体关闭后节省窗体大小,我在“属性”窗口中将ClientSize添加到“应用程序设置”和“数据绑定”中。这工作。但是,当我最小化窗体并将其激活时,它的大小最小。它是一个错误或我做错了什么窗体从最小化状态恢复后具有最小大小

  1. 创建新项目(WindowForm应用)
  2. 打开属性窗口窗体Form1
  3. 在应用程序设置中选择PropertyBinding
  4. 添加绑定的位置和ClientSize
  5. 运行
  6. 最大化,然后还原
+1

Yeesh。你说得对,那很丑。 – 2011-02-23 09:57:07

回答

3

我找到了答案topic。因此,为了节省大小和位置而没有副作用,需要手动删除绑定并保存应用设置。

private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
{ 
    Properties.Settings.Default.Size = this.Size; 
    Properties.Settings.Default.Location = this.Location; 
    Properties.Settings.Default.Save(); 
} 

private void Form1_Load(object sender, EventArgs e) 
{ 
    this.Size = Properties.Settings.Default.Size; 
    this.Location = Properties.Settings.Default.Location; 
} 
+2

这仍然不能解决问题。当WindowState不正常时,您不*要*保存大小/位置。 – 2011-02-23 12:49:31

+0

@Hans Passant - 在我的情况下,表单只能被最小化,所以不需要检查表单是否被最大化并且恢复它的大小 – Stecya 2011-02-23 12:53:24

+0

好吧,这样写代码的普遍正确性就像它只是使其工作在你的具体案例。 – 2011-02-23 12:56:55

0

表单,控件和子控件之间的对接,填充和自动调整的不良组合可能会产生该效果。

+0

试图在没有控件和对接风格的新窗体上。行为是一样的 – Stecya 2011-02-23 09:34:24

+0

@Stecya - 如果你有办法再现这个问题,你能编辑你的问题并记录重现它的步骤吗?它会让其他人更容易诊断(从“New Project ...”开始,并记录每一步) – 2011-02-23 09:39:25

+0

@ Damien_The_Unbeliever - done – Stecya 2011-02-23 09:49:56

相关问题