【问题标题】:Open a form from a panel从面板打开表单
【发布时间】:2020-07-23 14:27:13
【问题描述】:

过去一个月我一直在做项目,但我真的被困住了。我有一个名为 MainForm 的表单,它有 2 个面板。一个称为 MainContainer,另一个称为 SubContainer。我还有另外两种形式,一种称为登录,另一种称为 SQLSettings。 SubContainer 位于 MainContainer 中。 SubContainer 应该保存所有打开的表单。当 MainForm 在启动时加载时,它会在 SubContainer 中打开登录表单。登录包含一个链接标签,它也假设在子容器中打开 SQLSettings 表单,但是当我单击登录表单中的链接标签时没有任何反应。

我尝试过的:

这是假设打开 SQLSettings 表单的链接标签的代码: this.Close();

MainForm f = new MainForm();
Form cur = new SQLSettings();
f.SubContainer.Dock = DockStyle.None;
f.SubContainer.Anchor = AnchorStyles.None;
f.SubContainer.Size = cur.Size;
f.SubContainer.Location = new Point(f.MainContainer.Width / 2 - f.SubContainer.Width / 2,
f.MainContainer.Height / 2 - f.SubContainer.Height / 2);
cur.TopLevel = false;
f.SubContainer.Controls.Remove(f.currentForm);
f.SubContainer.Tag = cur;
f.SubContainer.Controls.Add(cur);
f.SubContainer.Tag = cur;
cur.BringToFront();
cur.Show();

【问题讨论】:

    标签: c#


    【解决方案1】:

    子表单可以通过设置属性MdiParent在父表单中打开。 根据您的 MainForm 作为父级和 SQLSettings 表单作为子级:

    MainForm f = new MainForm();
    Form cur = new SQLSettings();
    cur.MdiParent = f;
    cur.BringToFront();
    cur.Show();
    

    【讨论】:

      猜你喜欢
      • 2015-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-19
      • 2018-12-05
      • 1970-01-01
      • 1970-01-01
      • 2018-04-17
      相关资源
      最近更新 更多