2013-01-02 44 views
1

可能重複:
Creating Wizards for Windows Forms in C#是否有.Net表單容器?

我新的發展VB.NET中的形式,我現在有一個「嚮導」在現階段,我只是把它設置爲不同的形式,但問題在於更改窗體時Windows完全動畫和窗口位置可能會更改。這在用戶端不太好。

我見過的另一種方法是手動隱藏/顯示所有元素,但這很麻煩,很難維護。因此,是否有一個父容器可以在其中指定單獨的表單,因此所有表單邏輯仍然位於單獨的文件中,但它是通過一個表單(從用戶的角度來看)訪問的?

注:我目前使用.Show和.Hide在表單之間切換。

使用常規的Windows窗體,.NET與相同大小和位置面板2.0

+0

我假設您使用的是Windows窗體。如果你想知道你使用的是WinForms還是WPF,那麼我就不必假設。 –

回答

1

您可以使用一些技巧將表單加載到面板中。我在主窗體中添加一個面板,然後調暗一個我想要顯示的新窗體,並將其添加到面板。想要顯示另一個表單,清除面板並加載一個新表單。以下是我用於將表單加載到面板的代碼:

Dim formToShow As New Form2 
formToShow.TopLevel = False 
formToShow.WindowState = FormWindowState.Maximized 
formToShow.FormBorderStyle = Windows.Forms.FormBorderStyle.None 
formToShow.Visible = True 
Panel1.Controls.Add(formToShow) 
+0

無論如何要將鍵盤事件轉發給內部表單嗎?例如,選項卡不起作用,只能製作容器表單。 – Mattisdada

+0

我真的不知道,沒有遇到過,我摧毀了我寫的代碼。我需要在我的緊迫工作完成後在今天晚些時候重新創建它。 – Wade73

0

把每個窗體的控件。因此,您不必逐個隱藏所有控件,只需隱藏一個面板並顯示另一個面板即可。

2

您應該考慮將您的控件放在一個或多個UserControl s之內。這使您可以像表單一樣設計和使用它,但可以作爲單個「控件」使用,您可以根據需要顯示或隱藏該控件。

有關詳細信息,請參閱MSDN上的Developing Custom Windows Forms Controls with the .NET Framework

+0

有趣而又聰明的一個o.O – theGD