【问题标题】:how to keep a form activated如何保持表单处于激活状态
【发布时间】:2018-04-14 00:51:40
【问题描述】:

现在,我有两个表单,分别叫form1和form2,在form1中有一个按钮,当我点击它,然后打开form2

private void button1_Click(object sender, EventArgs e)
{
    Ges.produit.Add(p); 
    Form3 f= new Form3(); 
    f.dataGridView1.Rows.Clear(); 
    foreach (var item in Ges.produit) 
    {
        f.dataGridView1.Rows.Add(item.Id, item.Name, item.Qty, item.Prac, item.Prav, item.Disc); 
    }
    this.MdiParent = f.MdiParent; 
    f.Show(); 
    this.Hide(); 
}

问题:在 form2 中,我创建了一个按钮,当我单击它时,form2 关闭并返回 form1 而不打开另一个 form1 。怎么办?这个

【问题讨论】:

  • 发布您正在尝试的代码,因为您只是关闭了表单。
  • private void button1_Click(object sender, EventArgs e) { Ges.produit.Add(p);表格 3 f= 新表格 3(); f.dataGridView1.Rows.Clear(); foreach(Ges.produit 中的 var item){ f.dataGridView1.Rows.Add(item.Id, item.Name, item.Qty, item.Prac, item.Prav, item.Disc); } this.MdiParent = f.MdiParent; f.显示(); this.Hide(); }
  • 我将您的代码移至我们可以实际阅读的问题。随意删除您的评论。一般来说,不要害怕编辑您的问题以添加人们要求的详细信息。

标签: c# winforms


【解决方案1】:

您可以通过几种方式做到这一点,一种方法是在其构造函数中将父表单的引用传递给子表单,然后在关闭子表单时针对该引用调用 show。

实现这一点的另一种方法是在父窗体中创建子窗体时,同时还连接子窗体的 FormClosed 事件以重新显示父窗体。

以下是这两种方法的示例

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void btnShowForm2_Click(object sender, EventArgs e)
    {
        var form2 = new Form2(this);

        this.Hide();
        form2.Show();
    }

    private void btnShowForm3_Click(object sender, EventArgs e)
    {
        var form3 = new Form3();

        form3.FormClosed += (o, args) =>
        {
            this.Show();
        };

        this.Hide();
        form3.Show();
    }
}

public partial class Form2 : Form
{
    private readonly Form1 _form1;

    public Form2()
    {
        InitializeComponent();
    }

    public Form2(Form1 form1)
        :this()
    {
        _form1 = form1;
    }

    private void Form2_FormClosed(object sender, FormClosedEventArgs e)
    {
        _form1.Show();
    }
}

【讨论】:

    猜你喜欢
    • 2022-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多