隐藏和恢复GUI c#中的多个表单

我有多个表单应用程序。 表单1是用于用户验证的登录表单。 Form1转到Form2(菜单表单)。 表单2导致Form3仅弹出窗体并在窗体2打开时隐藏表单2.表单3转到表单4.现在,从Form4中,单击按钮,我需要还原Form2而不创建新的实例。 我尝试使用singelton方法,如上所述获取error.Code,如下所示。

Form1中:

private void click_Click(object sender,EventArgs e)

{

if((user.Text == username)&&(pswd.Text == password))

{Form2 menu = new Form2();

            menu.Username = user.Text;
            //hides the form1
            this.Hide();      
            menu.ShowDialog();
        }
    }

窗体2:

私人静态Form2实例;

    public static Form2 Instance
    {
        get
        {
            if (instance == null)
            {
                instance = new Form2();
            }
            return instance;
        }
    }

private void button_Click(object sender,EventArgs e){

        //Hide the form2
        Hide();
        //Bring up your PopUp form
        using (Form3 form3 = new Form3())
            form3.ShowDialog();

    }

Form3:

private void button_Click(object sender,EventArgs e)

{
        Hide();
        Form4 form4 = new Form4();
        form4.Show();
    }

Form4:

private void button1_Click(object sender,EventArgs e)

{

        Form2 form2 = Form2.Instance;//error occured as

Mainmenu不包含Instance的引用,也没有接受'Mainmenu'类型的第一个参数的扩展方法,

    }

基本上,我想恢复被隐藏的Form2。任何帮助将不胜感激!谢谢


如何跟踪表单父母,以便您可以直接访问。 例如在你的Form1中:

menu.Parent = this;
Hide();
menu.ShowDialog();

然后在您的Form2中调用Form3时:

using (Form3 f3 = new Form3())
{
    Hide();
    f3.Parent = this.Parent;
    f3.ShowDialog();
}

那么当你想要处理Form3时:

this.Parent.Show();
this.Parent.Focus();
this.Dispose();

根据这一点,可以根据需要为许多开放的表单添加内容。 如果您需要退回到以前的表单,请将父'this'而不是'this.Parent'

链接地址: http://www.djcxy.com/p/21003.html

上一篇: Hide and restore the GUI Mutiple forms in c#

下一篇: Can we make a relation between two Generic Lists?