我试图在释放鼠标时抓取窗体的窗口大小。我可以使用事件SizeChanged,但我在那里放了一个测试,它在鼠标释放之前发射了很多次。我放了一个柜台,它在一个简单的大小调整上超过了100次点击。我想将这个'最终'大小保存到配置中,但我不希望它连续保存100次。
我的意思的一个例子:
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
如何在调整大小后释放鼠标后获得最终窗口大小?
答案 0 :(得分: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));
}
}
}
答案 1 :(得分:0)
当用户完成表单大小调整时,会引发ResizeEnd事件,通常是拖动其中一个边框或位于表单右下角的大小调整夹,然后释放它。有关调整大小操作的详细信息,请参阅ResizeBegin事件。