2017-04-02 41 views
-1

我剛剛開始在Visual Studio中使用C#構建一個簡單的遊戲(這是我的第一個低難度遊戲)。當我打開它時,它會顯示一個背景圖像和2個按鈕,「播放」和「指令」,我希望表單在點擊播放按鈕後打開一個新的菜單界面,如:「Game Difficulty /角色出現「(這兩個是按鈕),以及一個新的背景圖像。當我點擊其中一個,另一個菜單等。 我可以爲我創建多個設計(Form1.cs [Design1/2/3])並在它們之間交換?如果沒有,那我該怎麼做類似的事情呢?這是可能創建許多表單設計並在它們之間交換?

+0

Hello Ncs。歡迎來到StackOverflow。你能和我們分享你到目前爲止所嘗試過的嗎?什麼工作?什麼沒有?幫助我們,幫助你。你有沒有考慮查閱MDI和/或Modal表格?請告訴我們您研究的路徑,以便我們可以幫助您進行搜索。 – Forty3

+0

我試圖創建新表單並在它們之間進行交換,這不是我所希望的。我只想讓屏幕變得更改,並且應用程序可以在單個窗體上運行,而不會出現任何其他窗體 – Ncs

回答

0

在我看來,最簡單的方法是將每個菜單設置爲主窗體大小的「用戶控件」,然後您可以添加用戶控件,以隨時隨地顯示哪個菜單沿。

例如,在解決方案資源管理器中,我將創建一個文件夾並將其命名爲「菜單」。然後我會在那裏創建一個新的「用戶控制」。複製將要放置的窗體的寬度和高度,並將其應用於新控件。然後你可以添加你喜歡的所有按鈕和圖像。完成後,在主窗體中,您可以添加您在設計器中製作的「主菜單」控件。對於您想要的任何子菜單,也可以爲它們創建用戶控件。然後,如果您想要顯示子菜單,請捕獲所需按鈕的單擊事件,並使用FindForm()以編程方式將其添加到父窗體中。

假裝DifficultyScreenControl是單擊位於我的主菜單用戶控件中的播放按鈕後出現的屏幕。

裏面的菜單的用戶控制的

private void PlayButton_Click(object sender, EventArgs e) 
{ 
    DifficultyScreenControl DiffScr = new DifficultyScreen(); 
    this.FindForm().Controls.Add(DiffScr); 
} 

此外,它是取自一個好主意,或者Dispose()方法或刪除這些屏幕的一個,他們不能再重新審視,因爲它可以騰出資源由他們。

隨時問我問題或評論改變的事情!

+0

謝謝,迄今爲止,這有助於我從我的代碼中獲得最佳結果!有什麼方法可以阻止我在DiffScr出現之前使用的按鈕?我的意思是PLAY和INSTRUCTION按鈕,我希望它們被禁用,直到我回到主菜單。我試圖設置它們中的每一個都不可見,我可以禁用它們嗎,所以它們在我的其他菜單中不運行? – Ncs

相關問題