2013-12-12 22 views
0

警告!這可能是個小問題!提前對不起。如何在程序中創建導航形式

我正在學習C#(使用MS Studio 2013),我很難在簡單的桌面程序中創建某種體面的導航。基本上我想要的是:帶有諸如「計算某些東西」,「計算somethingelse」等選項的MenuStrip ...以及其他(我可以稍後添加 - 就像網頁上的動態菜單)。如果您單擊與StripMenu相連的表單中的第一個選項,您將獲得一些控件,允許您執行某些操作(如網頁上的輸入)。如果你點擊第二個,所有這些選項將消失,你將得到一個新的控件,你可以在這裏做一些簡單的事情(簡單的另一個網頁)。

什麼是最好的方式做到這一點(我覺得很難找到:))。只有我想出來的方式(更多來自js的經驗和教程)是使用javascript/html中的顯示/隱藏。

ExamplePanel.Visible = false; 
ExampleOtherPanel.Visible = true; 

但這似乎並不正確 - 我認爲這將是不可能在更大的程序來管理(不僅是代碼,但可視化設計太 - 你只能適合在內部形成太大面板)。

有什麼建議嗎?或者至少可以找到我可以找到的材料的鏈接?

編輯: 最終,我放棄了,並使用多個表單作爲答案中的消化。

private void MenuStripExample_Click_1(object sender, EventArgs e) 
    { 
     SomeForm SomeForm = new SomeForm(); 
     this.Hide(); //Hide the main form before showing the secondary 
     SomeForm.ShowDialog(); //Show secondary form, code execution stop until SomeForm is closed 
     //this.Show(); //You may uncomment this if you want to have the previous Form to get back after you close new one 
    } 
+0

這是視覺設計的美麗之一。試試看看它是否有效。如果您不喜歡,請將其刪除並重新開始。繼續這樣做,直到你想要的,然後開始編寫控件的事件處理程序。如果所有東西都不適合放在一個工具條上,請使用第二個工具條,或者轉到菜單條或組合2. – tinstaafl

+0

我編輯了標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

+0

好的,我會讀它。謝謝。 –

回答

1

您通常不會隱藏和顯示具有不同佈局的面板。這不是一個好設計。

如果您有完全不同的導航/控制集,則創建一個新的負責控制集的Form

如果您不想使用新表單,請查看TabControl。您可能還想看看MDI-Container。您可以使用Form作爲MDI容器,並在此容器中顯示其他各種表單作爲子元素。

+0

Thx感興趣。選項卡控制不是我所需要的(是的,它是創建導航的唯一方式,但只有很小的一種)。我確實考慮過創建多個表單,但我希望避免這種情況(當你在表單之間切換時 - 一個關閉,另一個開始)。真的沒有其他辦法嗎? –

+0

你究竟想要做什麼?當然,您可以使用面板並顯示和隱藏它們,但這不是您應該這樣做的方式。在編輯器中使用不同的面板進行設計將會很「困難」,並且它不是一個好設計。如果你來自網絡開發,你應該考慮到你有不同的桌面程序設計模式;)。 – user1567896

+0

是的。隱藏/顯示面板不好(等等!它不可能在任何更大的程序:))。是的,我來自web開發者:D。基本上我想要的是在桌面程序中有類似的導航下拉菜單(MenuStrip exen看起來如此)。到目前爲止,您使用新窗體的解決方案是最好的(新窗體==新頁面):P。設計模式意味着什麼?任何鏈接? –