【问题标题】:open last active form C#打开最后一个活动表单 C#
【发布时间】:2015-11-27 19:06:07
【问题描述】:

您好,我对 C# 比较陌生,正在为新手创建故障排除培训指南,因此将创建许多表单。我目前正在使用一个简单的打开新表单并隐藏当前运行良好的代码。在每个表单上,我都有一个下一个和上一个链接标签。我现在遇到的问题是我有两种形式导致相同的形式,而我正在使用的代码只会转到一个。

这是我正在使用的:

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
  Home myNewForm = new Home();
  myNewForm.Visible = true;

  this.Hide();
}

所以我的问题是如何从当前表单切换回最后一个活动表单,而不是上面代码中的设置表单?

【问题讨论】:

  • 检查我的回答试图让你变得简单:)

标签: c# forms hide switching


【解决方案1】:

注意

此代码未经测试 - 可能包含一些拼写错误

我会为它创建一个接口,但要让它更简单——创建一个可以使用附加 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();

}

现在在调用方法中,您可以使用 linq 和 showit 找到最新的活动:

public void showLastActiveForm()
{
    var latestForm = listOfForms.OrderByDescending(x => x.lastActive).Take(1);
    latestForm._form.Show();
}

【讨论】:

  • 您好,感谢您提供帮助的帖子。在为最后一部分添加表单缓存和额外的代码行时,必须进行一些更改。再次感谢。
  • 这是一个概念证明。很高兴它有帮助。干杯
【解决方案2】:

您要打开的表单

 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();
    }

【讨论】:

  • 您好,感谢您的帖子,但它仍然只是打开一个并关闭上一个。所以说我有3种形式。表格 1、表格 2 和表格 3。 form1 和 2 都进入 form 3 我想要做的是让 form3 上的上一个按钮选择要返回的表单。因此,如果我从 form1 - form3 开始,它将返回到 form1,如果我从 form2 -form3 开始,它将返回到 form2。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-19
  • 1970-01-01
  • 1970-01-01
  • 2020-03-20
  • 2015-02-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多