C# 打开最后一个活动窗体C
嗨,我是C语言的新手,我正在为新手创建一个故障排除培训指南,所以我将创建许多表单。我目前使用的是一个简单的打开新表单和隐藏当前代码,直到现在它仍然运行良好。在每个表单上,我都有一个下一个和上一个链接标签。我现在遇到的问题是,我有两个表单导致相同的表单,我使用的代码只会指向一个表单 这就是我正在使用的:C# 打开最后一个活动窗体C,c#,forms,hide,switching,C#,Forms,Hide,Switching,嗨,我是C语言的新手,我正在为新手创建一个故障排除培训指南,所以我将创建许多表单。我目前使用的是一个简单的打开新表单和隐藏当前代码,直到现在它仍然运行良好。在每个表单上,我都有一个下一个和上一个链接标签。我现在遇到的问题是,我有两个表单导致相同的表单,我使用的代码只会指向一个表单 这就是我正在使用的: private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { Home myNew
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Home myNewForm = new Home();
myNewForm.Visible = true;
this.Hide();
}
因此,我的问题是如何从当前表单切换回上一个活动表单,而不是上面代码中的设置表单?要打开的表单
public partial class Form3 : Form
{
public Form FormName { get; set; }
public Form3()
{
InitializeComponent();
}
public Form3(Form fromName)
{
FormName = fromName;
InitializeComponent();
}
private void BackToFrom(object sender, EventArgs e)
{
FormName.Show();
this.Hide();
}
}
这就是你如何从Form2和Form1到Form3再回到第一位的方法
在Form1中编写此方法
private void ShowForm3(object sender, EventArgs e)
{
new Form3(new Form1()).Show();
this.Hide();
}
在Form2中,再次写入,但更改参数
private void ShowForm3(object sender, EventArgs e)
{
new Form3(new Form2()).Show();
this.Hide();
}
注
此代码未经测试-可能包含一些拼写错误
我会为它创建一个接口,但为了使它更简单-创建一个类,它可以用额外的DateTime属性扩展表单。它也可以是某种布尔值。如下图所示:
public class FormExtended{
public Form _form{get;set;}
public DateTime lastActive {get;set;}
...
}
稍后,为每个表单创建该类的实例。例如:
public FormExtended CreateNewForm()
{
var extension = new FormExtended();
extension._form = new YourForm();
extension.lastActive = DateTime.Now;
listOfForms.Add(extension); //listOfForms - some kind of global list to hold all instances
return extension;
//if you want to You can make it void and just show the form without return
//extension._form.Show();
}
现在,在calling method中,您可以使用linq和showit找到最新的active:
public void showLastActiveForm()
{
var latestForm = listOfForms.OrderByDescending(x => x.lastActive).Take(1);
latestForm._form.Show();
}
检查我的答案,尽量让它对你简单:嗨,谢谢你的帖子,但它仍然只是打开一个和关闭前一个。假设我有3张表格。表格1、表格2和表格3。表格1和表格2都转到表格3我想做的是让表格3上的上一个按钮选择返回哪个表格。所以如果我从form1-form3走,它会回到form1,如果我从form2-form3走,它会回到form2。在为最后一节添加表单缓存和附加代码行时,必须进行一些更改。再次感谢。这是概念的证明。很高兴这有帮助。干杯