none
为什么mdi子窗口有两个最大化按钮? RRS feed

  • 问题

  • 我创建的mdi子窗口有两个最大化按钮,非常奇怪。见图:

     

    这里是我的代码:
    summaryForm.MdiParent = ContainerForm;
    summaryForm.WindowState = FormWindowState.Maximized;
    summaryForm.Show();

    如果我把设置为最大化那一行去掉,效果正常,但我希望窗口最大化。

    另外我试过,如果单独创建一个工程,用下面的代码创建一个子窗口,效果正常。
    Form2 form = new Form2();  
    form.MdiParent = this;
    form.WindowState = FormWindowState.Maximized;
    form.Show();

    但我在show之前加一行代码访问一下句柄,比如:
    if (form.Handle != null) ;
    效果就不正常了。

    但是我的代码中在show之前没有访问句柄。
    这个问题很奇怪,恳请各位解答,谢谢!
    我用的是c#, .net2.0

    2011年12月15日 8:20

答案

  • 这里是我的代码:

    summaryForm.MdiParent = ContainerForm;
    summaryForm.WindowState = FormWindowState.Maximized;
    summaryForm.Show();

    如果我把设置为最大化那一行去掉,效果正常,但我希望窗口最大化。

    另外我试过,如果单独创建一个工程,用下面的代码创建一个子窗口,效果正常。
    Form2 form = new Form2();  
    form.MdiParent = this;
    form.WindowState = FormWindowState.Maximized;
    form.Show();

    你好,

    看起来,你说的这两段创建MDI窗口的方式是一样的,我没有看出什么区别。

    按照你的方法,我尝试了一下,并没有出现你所说的不正常的情况。你能提供更好的步骤让我们重现你的问题吗?

    我重现的方法是,在一个项目中创建了两个Form: Form1和Form2. 其中Form1是父窗体。

    在Form1的Load事件中加入这段代码:

    Form2 form = new Form2();

                form.MdiParent = this;

                form.WindowState = FormWindowState.Maximized;

                form.Show();

    结果如预期所想,正常显示。


    Paul Zhou [MSFT]
    MSDN Community Support | Feedback to us
    • 已标记为答案 Paul Zhou 2011年12月23日 3:24
    2011年12月19日 8:55