繁体   English   中英

我如何从另一个表格关闭我的应用程序?

[英]How do i close shut down my application from another Form?

我以新表格的形式进行了此活动:

private void CrawlLocaly_FormClosed(object sender, FormClosedEventArgs e)
        {

        }

我不确定是否要使用“关闭”或“关闭”。 原因是我想检查用户是否关闭了程序,例如仅通过从任务栏关闭应用程序。

如果他确实通过右键单击任务栏上的鼠标将其关闭,然后关闭,那么我希望它关闭所有程序,而不仅仅是此窗体。

我该怎么做 ?

    Application.Exit();

将关闭您的应用程序。 我不太确定您是否可以通过rightmouse菜单检测到他是否将其关闭。 据我所知,您只能看到FormClosedEventArgs中提供的原因。 FormClosing将为您提供相同的原因。

使用此事件:

private void Form_FormClosing(object sender, FormClosingEventArgs e)
{
    if(e.CloseReason == CloseReason.UserClosing)
    {
         //close forms
         Application.Exit();
    }
}

无法检查用户是否通过单击'X'或通过TaskBar或其他任何方式关闭了您的表单,因为CloseReason的结果始终为CloseReason.UserClosing

好吧,我也坚持这样的问题。 在我的应用程序中,我有2种形式,#1主菜单,#2-用于设置-如果用户关闭它,我想知道是否保存设置。 另外,如果设置为空-如果用户单击按钮保存,则不仅关闭应用程序窗体,而且-用户想关闭(隐藏)#2窗体。 所以我的解决方案在哪里,如果单击按钮保存,我们会将标签值设置为1,这样我们就知道“谁”试图关闭表单:预定义:

btnSave.Tag = 0;

在保存按钮上单击事件:

btnSave.Tag = 1;
this.Hide();

它会触发onclose事件:

private void frmLogin_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (btnSave.Tag.ToString() == "0")
        {
            DialogResult dlg = MessageBox.Show("Do you want to exit without finished setup connection?", "Form", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
            if (dlg == DialogResult.No)
            {
                e.Cancel = true;
            }
            else
            {
                e.Cancel = false;
                this.Dispose();
                Application.Exit();
            }
        }
        else 
        {
            this.Hide();
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM