【问题标题】:Close All application click X Winform关闭所有应用程序单击 X Winform
【发布时间】:2012-10-12 19:55:31
【问题描述】:

我正在尝试根据选择从 Form1 更改 Form2 中的数据网格和标签的名称。

private void button1_Click_1(object sender, EventArgs e)
        {
            this.Hide();

            Form2 frm = new Form2();
            frm.Show();


        }

        private void button2_Click(object sender, EventArgs e)
        {
            Form2 frm = new Form2();

            frm.dataGridView1.Columns["FirstName"].HeaderText = "Prenom";
            frm.dataGridView1.Columns["LastName"].HeaderText = "Nom";


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

上述方法对我来说效果很好,但我遇到了问题。当我在第二个/Form 2 中单击X 时,它只是关闭了Form2 而不是Form1。当我点击X时如何关闭所有应用程序。

有没有更好的方法呢???我不使用的原因我使用的是 Telerik,但我没有找到任何添加资源文件的选项。如果我错了,请纠正我。谢谢。

【问题讨论】:

    标签: c# winforms datagrid


    【解决方案1】:

    您只需将一个事件处理程序附加到新创建的表单的Closed 事件,以便它在关闭时关闭主表单:

    private void button1_Click_1(object sender, EventArgs e)
    {
        this.Hide();
    
        Form2 frm = new Form2();
        frm.FormClosed += (_, args) => this.Close(); //Added this method
        frm.Show();
    }
    

    也将相同的方法添加到另一个点击处理程序。

    【讨论】:

      【解决方案2】:

      关闭应用程序最简单的方法是调用静态方法:Application.Exit

      如果您只想关闭一个表单,另一种方法是为FormClosing 事件添加一个处理程序并在此处关闭主表单。

      【讨论】:

      • 无论哪种方式,您都必须将事件处理程序添加到FormClosing。在该处理程序中使用 Application.Exit 并不比关闭主窗体容易得多,使用 Exit 方法也不是很好的实践。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多