我想在 C# 中使用 win-form 并在另一个表单中使用的面板中显示其内容或整个表单。
假设我有一个带有面板 Panel_of_A 的表单 A 和一个带有面板 Panel_of_B 的表单 B
我想将 Panel_of_A 的内容显示到 Panel_of_B 中,或者您可能会说我想以另一种形式使用 Panel_of_A。
或者,您可以提供帮助以将表单 A 显示到表单 B 的面板中。
希望我让你明白我的想法...
我认为这样做的更好方法是创建一个包含该面板的用户控件并(重新)在两个表单上使用它。
这是一个如何在 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();
我建议将要重用的面板定义为单独的类,并将其放在两个表单上。如果您还需要显示的数据相同,请绑定到可以在表单之间传递的业务对象。
根据应用程序的大小和规模,您可能需要考虑(免费)复合 UI 应用程序块
从简介:
它提供了经过验证的实践来构建基于众所周知的设计模式(例如复合模式)的复杂智能客户端用户界面,其中可以组合简单的用户界面部分以创建复杂的解决方案,但同时允许这些部分独立开发,测试和部署。