2017-06-01 104 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

相關問題