如何在移除面板后将面板正确地放入表单中

本文关键字:正确地 表单 | 更新日期: 2023-09-27 17:49:14

我希望这是一个简单的任务,尽管如此,我需要一些帮助。

  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再次到主形式,它不是放在我想要的地方,而是在(0,0)之上的pnlLeft。怎么了?我检查了两个面板的属性,没有看到任何赔率。也许有人能给我点提示,

最好丹尼斯

如何在移除面板后将面板正确地放入表单中

如果你的表单中有2个面板,那么你需要按照你想要显示它们的顺序设置这两个面板的dock属性

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

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

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