恢复按钮不会更改为我的WinForm中的最大化按钮

时间:2017-06-01 00:41:41

标签: c# .net winforms

我有一个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事件将触发,但不会显示最大化按钮。我必须再次单击恢复按钮以显示最大化按钮。为什么会这样?在执行单击和拖动时,我是否处理任何表示调整大小已完成的事件。

1 个答案:

答案 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
     } 

我希望你明白这一点