2017-06-01 90 views
-1

我有一个WinForms应用程序,其中我的表单变量从Form恢复按钮不会最大化我的WinForm中的按钮

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

我希望它会导致最大化按钮窗口状态设置为正常正在显示的不是恢复按钮。但它没有任何帮助。 – Sai

+0

我不明白这一部分:*如果我通过单击并按住标题栏拖动窗体,窗体将恢复*。表单处于正常状态(未最大化或最小化),然后单击标题栏并保持,然后通过拖动恢复表单?或者,当你拖动到屏幕的顶部时,你的意思是Windows 7 +会自动恢复它吗?无论如何,只需一个镜头,尝试在你的OnResize之前调用'base.OnResize(e);'。 – Alisson

+0

@Alisson窗体被最大化,并且当我开始拖动时,我单击并拖动它恢复的窗体。但恢复的表单应该有最大化按钮,而不是继续显示恢复按钮 – Sai

回答

0

无论如何,我认为如果你创建一个名为“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 
    } 

我希望你明白了吧

+0

OP如何显示/隐藏最大化的按钮? – Alisson

+0

@Jamisco问题是不显示/隐藏最大化按钮。 WinForms的默认行为,其中恢复按钮变为最大化按钮时通过拖动来恢复窗体(当它处于最大化状态时)不会发生。为了更清楚地尝试以下内容。在当前浏览器窗口(不是选项卡,但是整个浏览器窗口)上,最大化,然后单击标题栏并拖动它,您会注意到,只要窗口被拖动,恢复按钮就会变为最大化)。这种行为在我的案件中没有看到。 – Sai

+0

嗯,有趣的是,Win窗体已经不会自动隐藏/显示最大化的按钮了吗?.. Mine does ...但是我可以建议您尝试制作一个新窗体,然后查看其默认属性并在主窗体中更改它们形式 – Jamisco