【问题标题】:How do I show a Form in maximized state in the same monitor as its parent?如何在与其父级相同的监视器中以最大化状态显示表单?
【发布时间】:2014-12-11 11:12:51
【问题描述】:

如何在与其父级相同的监视器中以最大化状态显示表单?

我尝试在双显示器系统中运行以下代码:

    using System.Windows.Forms;

    private void button1_Click( object sender, EventArgs e )
    {
      Form form2 = new Form();
      form2.StartPosition = FormStartPosition.CenterParent;
      form2.WindowState = FormWindowState.Maximized;
      form2.ShowDialog();
    }

但 form2 始终显示在主监视器中,即使它的父级在辅助监视器上。

【问题讨论】:

    标签: c# .net winforms position


    【解决方案1】:

    指定所有者(父),将其传递给ShowDialog()

    form2.ShowDialog(this);
    

    【讨论】:

    • 谢谢!但这有什么不同呢? MSDN 文档说不带参数的 ShowDialog 应该“将表单显示为模式对话框,当前活动窗口设置为其所有者。”
    • 是的,为了重现它,我刚刚从 VS 2008 的向导创建了一个简单的 Winforms 应用程序,然后只添加了一个按钮和 button1_Click 事件。我刚刚尝试使用 VS 2012 Express,但仍然遇到此问题。
    • 不,我的意思是在 VS2008 和 VS2012 中,它只有在我传入 this 时才有效
    • 当我删除该行以最大化窗口状态时,它可以按预期工作而不会传递this。但是当我将WindowState 设置为Maximized 时它不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 2014-11-15
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多