0

我希望这是一个简单的任务,但我需要一些帮助。

  SomeForm f = new SomeForm();

  if (someStatement) // relocate pnlRight onto new form f
        {
            this.Controls.Remove(pnlRight);
            f.Controls.Add(pnlRight);

            pnlRight.Location = new Point(0, 0); // I want to place pnlRight at (0, 0) on the new form f
            this.pnlRight.Visible = false;
            f.Show();
        }
  else // hide form and relocate pnlRight onto main form
        {
            this.pnlRight.Location = new Point(pnlLeft.Location.X + pnlLeft.Width + 10, pnlLeft.Location.Y);
            this.Controls.Add(pnlRight);
            this.pnlRight.Visible = true;

            frmSettings.Hide();
        }

所以 - 我有一个带有两个面板的主窗体:pnlLeft 和 pnlRight。单击按钮时(此处如果 someStatement 为真)pnlRight 应重新定位在新创建的表单上。完美运行。但是:如果我再次将 pnlRight 重新定位到主窗体上,它不会放在我想要的位置,而是放在 pnlLeft 上方的 (0, 0) 处。怎么了?我检查了两个面板的属性,看不到任何赔率。也许有人对我有暗示,

最佳丹尼斯

4

2 回答 2

0

如果表单中有 2 个面板,则需要按照要显示它们的顺序设置两个面板的停靠属性。

于 2012-12-20T11:50:50.130 回答
0

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.location.aspx

特别是,“获取或设置控件左上角相对于其容器左上角的坐标。”

您在重新添加到表单尝试设置其位置?

于 2012-12-20T12:13:09.247 回答