【问题标题】:application running in Background when form is hidden隐藏表单时在后台运行的应用程序
【发布时间】:2015-01-10 00:05:56
【问题描述】:

我有两种表格“登录表格”和“仪表板表格”。当我通过登录表单成功连接到数据库时,它会隐藏并显示仪表板表单。但问题是,即使我关闭仪表板表单,我的应用程序仍在后台运行。

我应该怎么做才能避免我的应用程序在后台运行?

这是我的代码

 private void button1_Click(object sender, EventArgs e)
    {
       this.Hide();
       Form2 form = new Form2();
       form.ShowDialog();
    }

【问题讨论】:

  • 所以您希望仪表板表单在仪表板表单退出时也关闭登录表单?
  • @trashr0x 是的,我也需要通过关闭仪表板表单来关闭登录表单

标签: c# sql-server winforms


【解决方案1】:

隐藏并不意味着终止程序。

你可以做的是在dashboardForm上覆盖OnFormClosing

protected override void OnFormClosing(FormClosingEventArgs e)
{
    base.OnFormClosing(e);
    if (e.CloseReason != CloseReason.WindowsShutDown && !UserDidQuit)
    {
        Application.Exit();
    }
}

【讨论】:

    【解决方案2】:

    如下处理Form2FormClosed事件:

    private void Form2_FormClosed(object sender, FormClosedEventArgs e)
    {
        this.Dispose();
    }
    

    【讨论】:

      【解决方案3】:

      您应该在对话框关闭后关闭表单。

      private void button1_Click(object sender, EventArgs e)
      {
         this.Hide();
         Form2 form = new Form2();
         form.ShowDialog();
         this.Close();
      }
      

      【讨论】:

        猜你喜欢
        • 2015-08-17
        • 1970-01-01
        • 2023-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-14
        • 1970-01-01
        相关资源
        最近更新 更多