我想在停用时更改表单的大小(单击它)并在激活时重置它(单击返回)。要重置它,我有一个名为preferredHeight和preferredWidth的全局变量,我在MainForm_SizeChanged中设置(如果用户手动调整表单大小,则为该值)。但是,当我设置新的高度和宽度时,会调用SizeChanged方法!有没有办法区分用户是否触发了SizeChanged事件或者我的程序是否触发了?或者,有没有更好的方法来重置我的表单的大小?谢谢!
private void MainForm_SizeChanged(object sender, SizeChangedEventArgs e)
{
preferredHeight = MainForm.Height;
preferredWidth = MainForm.Width;
}
private void MainForm_Deactivated(object sender, EventArgs e)
{
MainGrid.RowDefinitions[3].Height = new GridLength(0);
MainGrid.RowDefinitions[4].Height = new GridLength(0);
MainForm.ResizeMode = ResizeMode.NoResize;
MainForm.Height = 100;
MainForm.Width = 100 * imageWidth / imageHeight;
}
private void MainForm_Activated(object sender, EventArgs e)
{
MainGrid.RowDefinitions[3].Height = new GridLength(1, GridUnitType.Star);
MainGrid.RowDefinitions[4].Height = new GridLength(2, GridUnitType.Star);
MainForm.ResizeMode = ResizeMode.CanResize;
MainForm.Width = preferredWidth;
MainForm.Height = preferredHeight;
}
答案 0 :(得分:1)
如果用户更改了表单的大小,则表单仍然具有焦点。
如果用户点击表单,则表单将失去焦点。
因此,您可以检查表单是否仍具有焦点。如果它有,那么用户调整大小,如果没有那么这是你的“停用”调整大小,这是调用。