2017-04-12 97 views
0

我試圖抓住窗體的大小,當鼠標已被釋放。我可以使用事件SizeChanged,但我在那裏做了一個測試,並且在鼠標被釋放之前它會多次觸發。我加入了一個櫃檯,在一次簡單的調整之後,它已經超過了100次。我想將這個「最終」大小保存到配置中,但我不希望它連續保存100次。獲取winform大小鼠標後達到最終大小後調整大小

我的意思的例子:

private void CreditCardScreen_Shown(object sender, EventArgs e) 
{ 
    Size = Properties.Settings.Default.ScreenSize; 
} 

private void CreditCardScreen_SizeChanged(object sender, EventArgs e) 
{ 
    count++; 
    Console.WriteLine("Count: " + count); 
    // save size here 
} 

我結束了:

.. 
Count: 66 
Count: 67 
Count: 68 
Count: 69 
Count: 70 
Count: 71 
Count: 72 
Count: 73 
Count: 74 

如何得到最終的窗口大小調整,他們已經後釋放鼠標後?

回答

1

這將做的工作:

public partial class Form1 : Form 
    { 
     Point p = new Point(); 

     public Form1() 
     { 
      InitializeComponent(); 
      this.ResizeEnd += Form1_ResizeEnd; 
      SetDimension(); 
     } 

     void SetDimension() 
     { 
      p = new Point(this.Width, this.Height); 
     } 

     void Form1_ResizeEnd(object sender, EventArgs e) 
     { 
      //check to avoid save if form was just moved... 
      if (this.Width != p.X || this.Height != p.Y) 
      { 
       SetDimension(); 
       MessageBox.Show(string.Format("Width={0} Height={1}, save your settings!", this.Width, this.Height)); 
      }   
     } 

} 
+0

我通過尋找類似這幾次的事件看,我不知道爲什麼我忽略了它。謝謝。 – ErocM

0

使用Form.ResizeEnd Event

當用戶結束調整一個形式,通常通過拖動邊界或位於形式的右下角的大小調整手柄的一個,並且然後釋放該ResizeEnd事件引發它。有關調整大小操作的更多信息,請參閱ResizeBegin事件。

相關問題