根据用户以前的表单将用户返回到上一个表单

时间:2013-11-10 19:40:24

标签: c# methods login

我的程序同时包含用户页面和管理员页面。用户或管理员可以导航到Zipcode查找页面。在Zipcode查找页面上,我有一个后退按钮。我希望程序将用户返回到用户页面,将管理员返回到管理页面。简而言之,如何让我的C#Windows窗体程序将用户/ admin返回到它们所在的上一页。

此外,Zipcode页面上没有任何地方用户和管理员之间有任何区别。它与具有相同信息的页面完全相同,例如我不能做ActiveForm.Hide();MyAdmin.Show;,或某种if - else陈述。

我应该将他们的登录状态(用户或管理员)设置为某种公共方法并使用它吗?我觉得可能有一种更简单的方式。

1 个答案:

答案 0 :(得分:1)

当您显示zipcode查找页面时,只需将当前表单传递给Show()方法。这将设置Owner()属性。

public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form2 f2 = new Form2();
        f2.Show(this); // pass in the owner
    }

}

现在您可以在第二个表单中检查它并隐藏/显示该表单:

public partial class Form2 : Form
{

    public Form2()
    {
        InitializeComponent();
        this.Shown += new EventHandler(Form2_Shown);
        this.FormClosed += new FormClosedEventHandler(Form2_FormClosed);
    }

    void Form2_Shown(object sender, EventArgs e)
    {
        if (this.Owner != null)
        {
            this.Owner.Hide();
        }
    }

    void Form2_FormClosed(object sender, FormClosedEventArgs e)
    {
        if (this.Owner != null)
        {
            this.Owner.Show();
        }
    }

}

不必从FormClosed()事件中完成,您也可以从后退按钮执行此操作。