2010-09-14 74 views
1

可以說我有一個主要的功能很多的形式。
此表單有一個選項卡控件,其中每個選項卡都包含一些功能集。
我想要做的是當我點擊每個選項卡控件按鈕我想要加載到選項卡控件的客戶區的窗體。
所以不是在主窗體中有很多控件,我只有一組窗體,每個窗體都有它的控制。
我認爲這將是更好的管理控制的方面,所以我沒有在主窗體上的150控件。 所以基本上我想加載另一個窗體上的窗體,而不是在單獨的視圖中顯示窗體。
如果它不可能與形式然後我可以使用另一個控件,將組合控件,並將加載在主窗體上?
感謝在Windows窗體中,是否有可能加載窗體,使其位於另一種形式?

+0

你面對執行我的解決方案有困難嗎? – 2010-10-25 13:46:02

+0

@國王:對不起,我忙於其他的東西,沒有時間去測試它。反正我會標記你的答案是正確的,如果我有任何問題實施它,我會取消它的標記。我希望這可以與你:) – Karim 2010-10-26 21:37:38

回答

2

備選1:

可以讓每個窗體作爲一個用戶控件,然後就可以在需要時在主窗體中的空白麪板加載適當的用戶控件。

您應該能夠找到一種方法來在您的表單和這些用戶控件之間進行通信。

備用2:

您可以顯示使用的ShowModal()方法的適當的形式,主要形式爲母公司,這樣用戶就可以完成的工作,並子窗體,回來的主要形式之前。

這裏的缺點是隻要子窗體關閉,用戶將無法與主窗體進行交互。

1

我建議您考慮一下User Controls

用戶控件與設計師一樣,就像表單一樣,並且有豐富的事件模型可供使用。與表單不同,它們很容易嵌入到其他控件和表單中。事實上,用戶控件將顯示在您的工具箱中,以拖放到另一個表單上。

這至少值得一看。

+0

謝謝,但在我創建用戶控件後,我怎麼把它放在主窗體中?我沒有看到工具箱中的用戶控件。我已閱讀文章,並沒有看到有關那裏的任何事情。 – Karim 2010-09-14 06:59:51

+1

@Karim - http://stackoverflow.com/questions/3628163/c-custom-control-doesnt-show-up-in-the-toolbox/3628310#3628310可以幫助你解決你的問題 – devnull 2010-09-14 07:03:22

1

以下代碼將一個窗體添加到另一個窗體的面板中。

添加該代碼在Form1中

 Form2 ff = new Form2(); 
     ff.TopLevel = false; 

     ff.Dock = DockStyle.Fill; 
     ff.ControlBox = false; 
     ff.Text = ""; 

     panel1.Controls.Add(ff); 
     ff.Show(); 

的另一面是你的面板應該足夠大,以適應形式...

+0

真的很有趣。我會檢查它是否有效,如果有效,我會將其設置爲可接受的答案。真的很好的代碼雖然:)這有好處,我不需要將舊代碼更改爲用戶控件,也可以使用窗體作爲窗體有時與show(),有時作爲用戶控件。 – Karim 2010-09-14 13:27:25

相關問題