【问题标题】:Consistent look between forms表格之间的一致外观
【发布时间】:2014-03-05 07:17:01
【问题描述】:

假设我有 2 个表格。它们都具有相同的高度/宽度。

表格 1 有一个打开表格 2 的按钮。

当我点击按钮时,表格 2 会跳到与表格 1 不同的位置。

所以我想我的问题是。我该如何设置才能使这种过渡平滑,就像新表单是 form1 所在的位置一样。

我必须在属性中进行设置吗?或者,还有更好的方法?现在,我的两种形式都是默认形式。我看了MDI的东西,那不是我想要的。我只是想知道我是否缺少某些东西。

【问题讨论】:

  • 如果form2打开,form1是否应该不可用?你熟悉模态吗?
  • 是的,我确实阅读了模态。我希望 form1 被隐藏...Seldman22 方法完美运行。请让我知道我应该知道的任何其他方式...谢谢!
  • 他的回答并没有使它隐藏,它使它成为模态。
  • hmm...请给我更多信息或链接以供阅读...问题是...所以现在...使用我给出的示例代码seldman22,它打开了form1所在的新窗口......这就是我想要的,但是如果我现在将form2移动到一个新位置并关闭它......Form1保持在原来的位置......我想要form1和form2可以互换地呆在同一个地方……无论我搬到哪里……我不知道我是否有道理……
  • @buzcrawl,你不需要在你输入的每个短语之后都使用....。它使阅读变得困难。

标签: c# .net vb.net winforms


【解决方案1】:

当您打开第二个表单时,请使用:

Form2 secondForm = new Form2();
secondForm.ShowDialog(this);

然后在您的Form2 Load 事件中设置如下位置:

private void Form2_Load(object sender, EventArgs e)
{
    this.Location = Owner.Location; // Owner is Form1.
}

【讨论】:

    【解决方案2】:
    form2.StartPosition = FormStartPosition.CenterParent;
    form2.ShowDialog(this);
    

    【讨论】:

    • CenterParent 将 MDI 表单与来自的容器(父级)居中。这和这里this指定的所有者不一样。
    【解决方案3】:

    您需要使用表单的Location 属性,如下所示。 x 和 y 坐标从左上角开始。例如,(0,0) 会将您的表单放在屏幕的左上角窗口中。

    Form1.Location = new Point(x, y);
    

    【讨论】:

      【解决方案4】:

      将新表单的Location设置为旧表单的Location

      newForm.Location = Location;
      

      【讨论】:

        【解决方案5】:

        FormStartPosition.Manual 用作StartPosition,否则Windows 将确定起始位置。

        var form2 = new Form2();
        form2.StartPostition = FormStartPosition.Manual;
        form2.Location = this.Location;
        form2.ShowDialog(this);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-06-20
          • 2011-04-07
          • 2020-06-07
          • 2018-09-25
          • 2020-04-06
          • 2020-03-28
          • 2015-01-08
          • 1970-01-01
          相关资源
          最近更新 更多