我们可以在C#中使用来自另一个winform的winform的面板吗?

时间:2009-05-11 10:46:21

标签: c# winforms panel

我想在C#中使用win-form并在其他表单中使用的面板中显示其内容或整个表单。

假设我有一张带有Panel_of_A面板的表格A.             以及带有Panel_of_B

面板的表格B.

我想将Panel_of_A的内容显示在Panel_of_B中,或者您可能会说我想以另一种形式使用Panel_of_A。

或者您可以提供帮助,以便在表格B上的表格中显示表格A.

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

5 个答案:

答案 0 :(得分:10)

我认为更好的方法是创建一个包含该面板的用户控件,并在两个表单上重新使用它。

这是tutorial how to create User Controls on MSDN

答案 1 :(得分:4)

创建一个包含要复制的逻辑的用户控件,然后在两个位置包含新的用户控件。

答案 2 :(得分:2)

如何在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();

答案 3 :(得分:1)

我建议将要重用的面板定义为单独的类,并将其放在两个表单上。如果您需要显示的数据也相同,请绑定到可以在表单之间传递的业务对象。

答案 4 :(得分:0)

根据您的应用程序的大小和规模,您可能需要考虑(免费)Composite UI Application Block

来自blurb:

  

它提供了经过验证的实践建设   复杂的智能客户端用户界面   基于众所周知的设计模式   例如复合模式   哪些简单的用户界面部件可以   结合起来创造复杂   解决方案,但同时   允许这些部分   独立开发,测试和   展开。