2011-02-23 55 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

相關問題