2013-04-12 41 views
0

我正在開發一個模擬公司程序的項目,用於在GUI中執行各種功能(在VS2010上使用C#)。目前大約有10種左右不同的形式,每種功能一種(用作菜單,填寫各種表格,管理表格等)。到目前爲止,我們一直使用的東西沿着線:如何讓用戶在一個窗體/窗口中瀏覽多個「屏幕」?

Form1 myForm1 = new Form1(); 
myForm1.Show(); 

打開新的屏幕和

this.Hide(); 

當與當前活動窗體完成。 (this.Close()只是似乎關閉整個程序)

這會導致一些問題,該過程有一個問題,在點擊窗體右上角的X後繼續運行(我認爲這是由於隱藏表格未被正確關閉)。我還懷疑,如果用戶使用程序內導航而沒有足夠長的時間殺死進程,那麼持續生成和隱藏表單將最終佔用所有內存。

在野外,我很少看到依靠打開新窗口/窗體不斷啓用用戶導航的程序。諸如安裝程序之類的程序通常使用某種事件來使當前顯示的內容消失,並且出現新的內容而不改變爲新的窗體/窗口。我怎麼能這樣做呢?這是一個按鈕/文本框/標籤在一個屏幕上彼此堆疊的問題,但隱藏或有更直觀的東西,我失蹤了嗎?

+0

@用戶.....這聽起來像一個導航問題。正如你所說的,通常網站有一個導航機制,例如帶導航鏈接的頁眉....左側導航樹。這些類型的策略是否不符合您的要求? – MikeTWebb

回答

0

可以做到這一點的方式(但並不總是可行的)是使UserControl每個屏幕。當它移動到下一個屏幕時,您只需隱藏當前用戶控件並顯示下一個屏幕。因此,例如,如果您有8個屏幕,則將每個屏幕都製作爲用戶控件。

然後在您的MainForm的Load事件中,您最初隱藏除第一個之外的所有事件。當它移動到第二個屏幕上的時候,你隱藏第一個控件,並顯示第二個等等等

相關問題