【问题标题】:Maximizing the main form when you close one关闭主窗体时最大化
【发布时间】:2019-02-26 17:10:46
【问题描述】:

我有这个学校项目,需要我使用 2 个表单,但我不能同时打开它们。

这意味着当我打开一个表单时,另一个会最小化。当你关闭这个时,我想让它恢复最小化的那个。

这就是我现在最小化它的方法:

private void Mkbtn1_Click(object sender, EventArgs e)
{
    var newForm = new form1();
    newForm.Show();
    this.WindowState = FormWindowState.Minimized;
}

【问题讨论】:

  • 您的描述有问题吗?表单具有可用于检测其最小化/最大化状态变化的事件(特别是Resize 事件,并查看FormWindowState 属性)。看看stackoverflow.com/questions/1052913/…。然后,在每个表单中获取对另一个表单的引用。当 Form1 最小化时,恢复 Form2,反之亦然(或类似的东西,具体取决于您想要做什么)。
  • @Flydog57 我想这样做,所以当我关闭 form2(完全关闭它)时,form 1 会再次全屏显示(所以恢复到原来的样子)
  • 查看 Form2 上的 FormClosing 事件。您需要引用您的 form1 对象
  • @Flydog57 就是这样,它不会关闭,它只是最小化,我希望第一个在我关闭第二个时打开

标签: c# .net winforms


【解决方案1】:

在form1中,也就是打开form2做这样的事情

    `private void button1_Click(object sender, EventArgs e)
    {
        Form2 newofrm = new Form2();
        newofrm.parentForm = this;
        newofrm.Show();
        this.Hide();
    }`

然后在form2中使用这个

   `private void Form2_Resize(object sender, EventArgs e)
    {
        if (WindowState == FormWindowState.Minimized && parentForm != null)
        {
            // Do some stuff
            parentForm.Show();
        }
    }`

这里parentForm 是 Form2 类型的公共成员,如果你想在表单关闭时这样做,那么添加表单关闭事件并在事件处理程序中添加相同的代码

【讨论】:

  • 非常感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多