【问题标题】:Can we use a panel of some winform from another winform in C#?我们可以在 C# 中使用来自另一个 winform 的某个 winform 的面板吗?
【发布时间】:2010-10-25 06:11:42
【问题描述】:

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

假设我有一个带有面板 Panel_of_A 的表单 A 和一个带有面板 Panel_of_B 的表单 B

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

或者您可以提供帮助以将表单 A 显示到表单 B 的面板中。

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

【问题讨论】:

    标签: c# winforms panel


    【解决方案1】:

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

    来自简介:

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

    【讨论】:

      【解决方案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】:

      创建一个包含您要复制的逻辑的用户控件,然后在两个地方都包含新的用户控件。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

          这是tutorial how to create User Controls on MSDN

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-05-07
            • 1970-01-01
            • 2019-10-30
            • 2013-04-11
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多