2012-11-28 29 views
4

我創建了C#中的圖形用戶界面應該是這樣的:C#多屏查看單個表

主屏上有兩個按鈕,當Button1點擊我不想使用form2.show();打開一個新的形式,但同時留在我想改變顯示的相同形式。

我這樣做使用隱藏的GUI元素和表示作爲所需的其他元素。

它正常工作,因爲我想但在Form1設計師查看我不得不創建凌亂GUI。

我的問題是,是良好的編程習慣或沒有?如果沒有,那麼實現這一目標的最佳或推薦的方式是什麼。

感謝

+0

你有沒有想過使用標籤控制?會給相同/類似的功能,同時保持您的設計師視圖更整潔 – paul

+0

謝謝,也可以使用tabbing你是對的。 – user1809095

回答

7

你可能要考慮一個「Tabless」選項卡控制,我傾向於使用它們了很多我的工作的這些天,因爲它很容易和快速建立使用與他們雙贏的窗體設計器的接口。

class TablessTabControl : TabControl 
    { 
     protected override void WndProc(ref Message m) 
     { 
      // Hide tabs by trapping the TCM_ADJUSTRECT message 
      if (m.Msg == 0x1328 && !DesignMode) m.Result = (IntPtr)1; 
      else base.WndProc(ref m); 
     } 
    } 

這將延長標籤控件和隱藏沿頂部的標籤,那麼你可以通過編程方式使用類似於下面的代碼更改標籤:

tablessTabControl.SelectTab("tabName"); 

這不是我的原創作品,我發現它在網絡上漂浮,但不記得我在哪裏看到它。無論如何,我希望這有助於!

+0

謝謝,這似乎更接近我所尋找的。我會試一試並討論它或進一步評論。 – user1809095

+0

嗨,我在項目中添加了這個類,但它沒有隱藏tabControls。我需要添加更多東西嗎? – user1809095

+0

@ user1809095是的,您需要確保您在winforms應用程序中創建了TablessTabControl。如果您查看Visual Studio中的「工具箱」菜單下的應用程序,您應該注意到一個部分,其中包含您的項目名稱後面跟着組件,例如, WindowsFormApplication2組件。只需將TablessTabControl從您的工具箱拖放到Windows窗體上,就像您通常使用常規選項卡控件一樣。從那裏你可以像管理常規選項卡控件一樣管理它。 –

1

怎麼樣使用TabControl的,你得到所有 '若干意見' 你想不亂 可見= true/false shizzle。

+0

感謝您的快速響應,TabControl是其中一個選項,但我個人不喜歡tabbing。所以在這種情況下,當一個人也想避免絆倒。這個凌亂的設計師是否正確?或者它是最後的手段? – user1809095

+0

取決於,如果你隱藏了很多控件,你可能想要使用面板來組合你的控件,並使這些控件可見/不可見。但還有更多的方法可以做到這一點。如果它像1-2控制,那麼你的方式真的是一種方式,如果不是,你真的有很多方法可以做到。 –

+0

謝謝,我想我需要使用選項卡/面板,如果有很多控件需要顯示/隱藏每個不同的視圖。但現在,我現在可以使用它。感謝您的建議 – user1809095

1

您可以創建不同的子控件視圖1和視圖2和顯示/隱藏基於表單狀態和按鈕點擊每個控件。

+0

但是這些視圖會在同一個表單設計器視圖中重疊,並且看起來很亂。不是嗎? – user1809095

+0

我不明白你爲什麼如此過分擔心設計師的觀點。但是,解決您的「混亂」問題的方法是逐個添加這些控件,以便表單看起來很長。當您決定顯示/隱藏控件時,您還可以設置其頂部和左側位置,以便它們正確顯示。 – ryadavilli

+0

嗯,我到目前爲止所做的是一個工作,我並不擔心我想知道這方面的最佳做法。如果稍後有人需要編寫我的代碼,他會'讚美'我,如果我離開這樣的設計師。但我想嘗試你剛纔提到的方法。 – user1809095