2017-04-12 52 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事件。

相关问题