【问题标题】:Open child windows from another child windows in MDI从 MDI 中的另一个子窗口打开子窗口
【发布时间】:2010-09-27 20:07:14
【问题描述】:

我在使用 Windows 窗体进行 MDI 应用程序开发过程中遇到了一些问题。

想象一下具有 3 种表单的小型测试应用程序:Form1、Form2 和 Form3。 Form1 是一个 MdiContainer(带有带有单个按钮的附加 menuStrip 元素 - 用于测试目的)。 Form2 仅包含单个按钮。 Form2 通过单击 Form1 menuStrip 按钮打开。 Form3 应该通过 Form2 按钮单击打开。

我已经用谷歌解决了这个问题,但没有任何帮助。

我的代码如下:

Form1

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void menu2ToolStripMenuItem_Click(object sender, EventArgs e)
    {
        Form2 chWin = new Form2();
        chWin.MdiParent = this;
        chWin.Show();
    }
}

Form2

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form3 form3 = new Form3();
        form3.Show();
    }
}

Form3其实根本没有代码。

很明显,我以某种方式声明 Form3 应该是 Form1 的孩子,但是如何? :)

提前致谢!

【问题讨论】:

    标签: c# winforms mdi


    【解决方案1】:

    form3 上设置Form.MdiParent 属性:

    form3.MdiParent = this.MdiParent;
    

    【讨论】:

    • 我想如果我添加这样的属性 - form3 将是 form2 的父级,而不是我需要的 form1
    • 上面的'this'是Form2的实例,它的MdiParent属性指向Form1,所以这应该设置form3的MdiParent也指向form1。
    • 如果您能将我的答案标记为已接受的答案,我将不胜感激......谢谢:)
    【解决方案2】:

    form3.MdiParent = this.MdiParent

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-28
      • 2011-02-18
      • 2020-05-31
      • 2013-09-18
      • 2018-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多