我已经彻底研究过但仍无法找到最佳解决方案.. 我有一个3个按钮,BACK - HOME - FORWARD ..
这就像浏览器左上角的按钮..我试图在表单上执行此操作..
我拥有的是这个..
后退按钮代码是
private void button1_Click(object sender, EventArgs e)
{
this.Hide();
}
// simply hiding the form .. so that the previous form will be shown..
主页按钮代码是这个..
private void button2_Click(object sender, EventArgs e)
{
for (int i = Application.OpenForms.Count - 1; i >= 0; i--)
{
if (Application.OpenForms[i].Name != "HomePage")
Application.OpenForms[i].Close();
}
}
// this will show the HomePage form and close other forms whos name is not "HomePage"
问题是,当我按下后退按钮时,我将其隐藏..按钮如何重新打开以前关闭或隐藏的表格?
我希望你能帮助我!谢谢!
private void button3_Click(object sender, EventArgs e)
{
???????
}
答案 0 :(得分:2)
您需要存储对您希望再次打开的表单的引用。
有几个选项可以做到这一点,但是如果你只是想让用户“前进”一次,你可以像这样存储对表单的引用:
internal class MyHistory {
internal static Form LastForm;
}
// ........
private void button1_Click(object sender, EventArgs e)
{
MyHistory.LastForm = this;
this.Hide();
}
// ........
private void button3_Click(object sender, EventArgs e)
{
MyHistory.LastForm.Show();
}
当然,如果你想要比这更全面,你可以维护一整套历史项目并遍历/转发。
请注意,如果您.Close()
表单,则无法重新打开表单,因为引用将在关闭时被处理掉。这个方法只有在你.Hide()
它时才有效,它保持表单实例有效,只是从用户的视图中隐藏表单。
答案 1 :(得分:0)
您可以使用包含所有初始化表单的表单列表。这样你就可以动态地隐藏,显示,添加和删除表单。
List<Form> lstForms = new List<Form>();
然后当你添加一个表格时:
Form newForm = new Form();
lstForms.Add(newForm);
隐藏表格:
lstForms(x).Hide(); //x = index of Form you want to hide
显示表格
lstForms(x).Show(); //x = index of Form you want to hide
删除表单(例如,关闭表单时)
lstForms.RemoveAt(x);
通过这种方式,您可以动态使用表单,如果您有多种表单,则更容易保持概述......