Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从其他表单关闭我的申请?_C# - Fatal编程技术网

C# 如何从其他表单关闭我的申请?

C# 如何从其他表单关闭我的申请?,c#,C#,我以一种新的形式举办了这次活动: private void CrawlLocaly_FormClosed(object sender, FormClosedEventArgs e) { } 我不确定是使用Closed还是Closed。 原因是我想检查用户是否关闭了程序,例如,只需从任务栏关闭应用程序 如果他确实从任务栏关闭了它,鼠标右键单击然后关闭,那么我希望它关闭所有的程序,而不仅仅是这个表单 我怎么做 Application.Exit(); 将关

我以一种新的形式举办了这次活动:

private void CrawlLocaly_FormClosed(object sender, FormClosedEventArgs e)
        {

        }
我不确定是使用Closed还是Closed。 原因是我想检查用户是否关闭了程序,例如,只需从任务栏关闭应用程序

如果他确实从任务栏关闭了它,鼠标右键单击然后关闭,那么我希望它关闭所有的程序,而不仅仅是这个表单

我怎么做

    Application.Exit();
将关闭您的应用程序。 我不确定你们是否能检测到他是否通过鼠标右键菜单关闭了它。据我所知,您只能看到FormClosedEventArgs中提供的原因。FormClosing将为您提供相同的原因

将关闭您的应用程序。 我不确定你们是否能检测到他是否通过鼠标右键菜单关闭了它。据我所知,您只能看到FormClosedEventArgs中提供的原因。FormClosing将为您提供相同的原因。

使用此事件:

private void Form_FormClosing(object sender, FormClosingEventArgs e)
{
    if(e.CloseReason == CloseReason.UserClosing)
    {
         //close forms
         Application.Exit();
    }
}
无法检查用户是否通过单击“X”或通过
任务栏
或任何其他方式关闭表单,因为
关闭原因
将始终是
关闭原因。用户关闭

使用此事件:

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

无法检查用户是否通过单击“X”或通过
任务栏
或任何其他方式关闭表单,因为
关闭原因
将始终是
关闭原因。用户关闭

我也坚持这样的问题。 在我的应用程序中,我有两个表单,#1 main,#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();
        }
    }

我也坚持这样的观点。 在我的应用程序中,我有两个表单,#1 main,#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();
        }
    }

同样在表格1中,我使用了Closed event not Closing。何时需要使用Closed?何时关闭?如果用户只是通过单击右上角的红色X从程序中自行关闭程序,或者只是从正在关闭的菜单中退出?如果用户在没有退出任务栏的情况下关闭了程序,鼠标右键单击>关闭该程序,或者该程序也关闭了?
FormClosing
允许您有条件地取消
FormClosed
事件。
FormClosed
事件表示
Form
已通过任何方式关闭。应用程序如何关闭是否重要?我认为您无法区分用户通过表单上的X按钮或任务栏右键单击菜单中的“Close window”(关闭窗口)项关闭应用程序的事实。您将获得的唯一信息是可以通过FormClosing/FormClosed事件检索的对象。正如Otiel所说。但是,您可以检查游标。事件中的位置,但我不建议将其作为解决方案。同样在Form1中,我使用了Closed event not Closing。何时需要使用Closed?何时关闭?如果用户只是通过单击右上角的红色X从程序中自行关闭程序,或者只是从正在关闭的菜单中退出?如果用户在没有退出任务栏的情况下关闭了程序,鼠标右键单击>关闭该程序,或者该程序也关闭了?
FormClosing
允许您有条件地取消
FormClosed
事件。
FormClosed
事件表示
Form
已通过任何方式关闭。应用程序如何关闭是否重要?我认为您无法区分用户通过表单上的X按钮或任务栏右键单击菜单中的“Close window”(关闭窗口)项关闭应用程序的事实。您将获得的唯一信息是可以通过FormClosing/FormClosed事件检索的对象。正如Otiel所说。但是你可以检查光标。在事件中定位,但我不建议将其作为解决方案。标题和问题似乎不匹配,这只回答了标题。我知道它没有提供解决方案来检测他是否使用了任务菜单上的右键单击。但有没有办法做到这一点呢?除了closereason UserClosing之外,即使用户决定用其他方式关闭它,也会设置它。标题和问题似乎不匹配,这只回答了标题。我知道它没有提供检测他是否使用任务菜单上的右键单击的解决方案。但有没有办法做到这一点呢?除了closereason UserClosing之外,即使用户决定用其他方式关闭它,也会设置该选项。