0

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

此外,在邮政编码页面上,用户和管理员之间没有任何区别。它是具有相同信息的完全相同的页面,例如我不能只做ActiveForm.Hide();andMyAdmin.Show;或某种if - else声明。

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

4

1 回答 1

1

当您显示邮政编码查找页面时,只需将当前表单传递给 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() 事件来完成,您也可以通过后退按钮来完成。

于 2013-11-10T21:38:04.033 回答