我想在C#中使用win-form并在其他表单中使用的面板中显示其内容或整个表单。
假设我有一张带有Panel_of_A面板的表格A. 以及带有Panel_of_B
面板的表格B.我想将Panel_of_A的内容显示在Panel_of_B中,或者您可能会说我想以另一种形式使用Panel_of_A。
或者您可以提供帮助,以便在表格B上的表格中显示表格A.
希望我让你理解我的想法......
答案 0 :(得分:10)
我认为更好的方法是创建一个包含该面板的用户控件,并在两个表单上重新使用它。
答案 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:
它提供了经过验证的实践建设 复杂的智能客户端用户界面 基于众所周知的设计模式 例如复合模式 哪些简单的用户界面部件可以 结合起来创造复杂 解决方案,但同时 允许这些部分 独立开发,测试和 展开。