簡體   English   中英

我們可以在C#中使用來自另一個winform的winform的面板嗎?

[英]Can we use a panel of some winform from another winform in C#?

我想在C#中使用win-form,並在另一個表單中使用的面板中顯示其內容或整個表單。

假設我有一個帶有面板Panel_of_A的表格A和一個帶有面板Panel_of_B的表格B.

我想將Panel_of_A的內容顯示在Panel_of_B中,或者您可能會說我想以另一種形式使用Panel_of_A。

或者,您可以提供幫助,以便在表格B的面板中顯示表格A。

希望我讓你理解我的想法......

我認為更好的方法是創建一個包含該面板的用戶控件,並在兩個表單上重新使用它。

這是一個如何在MSDN上創建用戶控件教程

創建一個包含要復制的邏輯的用戶控件,然后在兩個位置包含新的用戶控件。

如何在FormB的面板中顯示FormA的實例? UserControl可能是更好的方法,但你要求的是可能的。

fa = new FormA();
fa.TopLevel = false;
fa.FormBorderStyle = FormBorderStyle.None;
fa.Dock = DockStyle.Fill; 

fb = new FormB();
fb.panel1.Controls.Add(fa); // if panel1 was public

fa.Show();
fb.Show();

我建議將要重用的面板定義為單獨的類,並將其放在兩個表單上。 如果您需要顯示的數據也相同,則綁定到可以在表單之間傳遞的業務對象。

根據應用程序的大小和規模,您可能需要考慮(免費) Composite UI Application Block

從模糊:

它提供了基於眾所周知的設計模式(如Composite模式)構建復雜智能客戶端用戶界面的成熟實踐,其中簡單的用戶界面部件可以組合以創建復雜的解決方案,但同時允許這些部件獨立開發,測試和部署。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM