我的程序同时包含用户页面和管理员页面。用户或管理员可以导航到Zipcode查找页面。在Zipcode查找页面上,我有一个后退按钮。我希望程序将用户返回到用户页面,将管理员返回到管理页面。简而言之,如何让我的C#Windows窗体程序将用户/ admin返回到它们所在的上一页。
此外,Zipcode页面上没有任何地方用户和管理员之间有任何区别。它与具有相同信息的页面完全相同,例如我不能做ActiveForm.Hide();
和MyAdmin.Show;
,或某种if - else
陈述。
我应该将他们的登录状态(用户或管理员)设置为某种公共方法并使用它吗?我觉得可能有一种更简单的方式。
答案 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()事件中完成,您也可以从后退按钮执行此操作。