我有一个WinForms应用程序,我的表单来自Form
。
protected override void OnResize(EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
//I do something here
//*what I have tried*
if (MouseButtons == MouseButtons.Left)
WindowState = FormWindowState.Normal;
//end of *what I have tried*
base.OnResize(e);
if (WindowState == FormWindowState.Minimized)
{
//I do a few things here
}
else if (bMinimized)
//I do a few things here
}
在我最大化表单后,我可以通过双击标题栏来调整/恢复表单,并出现最大化按钮来代替还原按钮。但是,如果我通过单击并按住标题栏来拖动表单,而不是双击标题栏,则表单将恢复,并且OnResize事件将触发,但不会显示最大化按钮。我必须再次单击恢复按钮以显示最大化按钮。为什么会这样?在执行单击和拖动时,我是否处理任何表示调整大小已完成的事件。
答案 0 :(得分:0)
无论如何,我想如果你创建一个名为&#34的bool变量; isMaximzed"。然后,只要表单最大化,我们的变量就会设置为true。并且最大化按钮消失。
使用带有一个if和else语句的if语句,所以它看起来像这样。这种方式只能有一种状态......形式要么最大化要么不是。
if (WindowState == FormWindowState.Minimized)
{
isMaximized = false;
} else if (WindowState == FormWindowState.Maximized)
{
isMaximized = true;
}
if (isMaximized == true) {
// don't show maximize button
} else
{
// show maximized button
}
我希望你明白这一点