繁体   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