C# VS2015关闭Windows窗体工作不正常

C# VS2015关闭Windows窗体工作不正常,c#,visual-studio,visual-studio-2015,windows-forms-designer,C#,Visual Studio,Visual Studio 2015,Windows Forms Designer,我有VS2015 Windows窗体,每当我单击X关闭应用程序时,它都会提示我是否关闭它。当我按“否”时,弹出窗口将关闭。然而,当我按Yes时,它会弹出另一个相同的窗口,并要求我关闭或不关闭它 我如何解决这个问题?我想在第一次弹出窗口时关闭我的表单 private void Form1_FormClosing(object sender, FormClosingEventArgs e) { const string closemsg = "Do you r

我有VS2015 Windows窗体,每当我单击X关闭应用程序时,它都会提示我是否关闭它。当我按“否”时,弹出窗口将关闭。然而,当我按Yes时,它会弹出另一个相同的窗口,并要求我关闭或不关闭它

我如何解决这个问题?我想在第一次弹出窗口时关闭我的表单

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            const string closemsg = "Do you really want to close the program?";
            const string exit = "Exit";

            DialogResult dialog = MessageBox.Show(closemsg, exit, MessageBoxButtons.YesNo);

            if (dialog == DialogResult.Yes)
            {
                Application.Exit();
            }
            else if (dialog == DialogResult.No)
            {
                e.Cancel = true;
            }
        }
然而,当我按Yes时,它会弹出另一个相同的窗口,并要求我关闭或不关闭它

原因是将再次调用您的
Form1\u FormClosing
。尝试设置一个
\u isexit
标志,您可以在输入时进行测试

试试这个:

bool _isExiting;

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    if (_isExiting) 
    {
        // whoops, been here already, time to go!
        return;
    }

    const string closemsg = "Do you really want to close the program?";
    const string exit = "Exit";

    DialogResult dialog = MessageBox.Show(closemsg, exit, MessageBoxButtons.YesNo);

    if (dialog == DialogResult.Yes)
    {
        _isExiting=true; // set flag here so we don't repeat this exercise again
        Application.Exit();
    }
    else if (dialog == DialogResult.No)
    {
        e.Cancel = true;
    }
}  
然而,当我按Yes时,它会弹出另一个相同的窗口,并要求我关闭或不关闭它

原因是将再次调用您的
Form1\u FormClosing
。尝试设置一个
\u isexit
标志,您可以在输入时进行测试

试试这个:

bool _isExiting;

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    if (_isExiting) 
    {
        // whoops, been here already, time to go!
        return;
    }

    const string closemsg = "Do you really want to close the program?";
    const string exit = "Exit";

    DialogResult dialog = MessageBox.Show(closemsg, exit, MessageBoxButtons.YesNo);

    if (dialog == DialogResult.Yes)
    {
        _isExiting=true; // set flag here so we don't repeat this exercise again
        Application.Exit();
    }
    else if (dialog == DialogResult.No)
    {
        e.Cancel = true;
    }
}  
然而,当我按Yes时,它会弹出另一个相同的窗口,并要求我关闭或不关闭它

原因是将再次调用您的
Form1\u FormClosing
。尝试设置一个
\u isexit
标志,您可以在输入时进行测试

试试这个:

bool _isExiting;

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    if (_isExiting) 
    {
        // whoops, been here already, time to go!
        return;
    }

    const string closemsg = "Do you really want to close the program?";
    const string exit = "Exit";

    DialogResult dialog = MessageBox.Show(closemsg, exit, MessageBoxButtons.YesNo);

    if (dialog == DialogResult.Yes)
    {
        _isExiting=true; // set flag here so we don't repeat this exercise again
        Application.Exit();
    }
    else if (dialog == DialogResult.No)
    {
        e.Cancel = true;
    }
}  
然而,当我按Yes时,它会弹出另一个相同的窗口,并要求我关闭或不关闭它

原因是将再次调用您的
Form1\u FormClosing
。尝试设置一个
\u isexit
标志,您可以在输入时进行测试

试试这个:

bool _isExiting;

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    if (_isExiting) 
    {
        // whoops, been here already, time to go!
        return;
    }

    const string closemsg = "Do you really want to close the program?";
    const string exit = "Exit";

    DialogResult dialog = MessageBox.Show(closemsg, exit, MessageBoxButtons.YesNo);

    if (dialog == DialogResult.Yes)
    {
        _isExiting=true; // set flag here so we don't repeat this exercise again
        Application.Exit();
    }
    else if (dialog == DialogResult.No)
    {
        e.Cancel = true;
    }
}  
这很简单。 使删除应用程序。退出()

Application.Exit()生成FormClosing事件

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{ 
    const string closemsg = "Do you really want to close the program?";
    const string exit = "Exit";

    DialogResult dialog = MessageBox.Show(closemsg, exit, MessageBoxButtons.YesNo);

    if (dialog == DialogResult.Yes)
    {
        //Remove Application.Exit();
        //Application.Exit();
    }
    else if (dialog == DialogResult.No)
    {
        e.Cancel = true;
    }
}
这很简单。 使删除应用程序。退出()

Application.Exit()生成FormClosing事件

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{ 
    const string closemsg = "Do you really want to close the program?";
    const string exit = "Exit";

    DialogResult dialog = MessageBox.Show(closemsg, exit, MessageBoxButtons.YesNo);

    if (dialog == DialogResult.Yes)
    {
        //Remove Application.Exit();
        //Application.Exit();
    }
    else if (dialog == DialogResult.No)
    {
        e.Cancel = true;
    }
}
这很简单。 使删除应用程序。退出()

Application.Exit()生成FormClosing事件

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{ 
    const string closemsg = "Do you really want to close the program?";
    const string exit = "Exit";

    DialogResult dialog = MessageBox.Show(closemsg, exit, MessageBoxButtons.YesNo);

    if (dialog == DialogResult.Yes)
    {
        //Remove Application.Exit();
        //Application.Exit();
    }
    else if (dialog == DialogResult.No)
    {
        e.Cancel = true;
    }
}
这很简单。 使删除应用程序。退出()

Application.Exit()生成FormClosing事件

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{ 
    const string closemsg = "Do you really want to close the program?";
    const string exit = "Exit";

    DialogResult dialog = MessageBox.Show(closemsg, exit, MessageBoxButtons.YesNo);

    if (dialog == DialogResult.Yes)
    {
        //Remove Application.Exit();
        //Application.Exit();
    }
    else if (dialog == DialogResult.No)
    {
        e.Cancel = true;
    }
}

是否确实需要
Application.Exit()?如果您什么也不做,并将leaving
e.Cancel
返回为false,该怎么办?您确定需要
Application.Exit()?如果您什么也不做,并将leaving
e.Cancel
返回为false,该怎么办?您确定需要
Application.Exit()?如果您什么也不做,并将leaving
e.Cancel
返回为false,该怎么办?您确定需要
Application.Exit()?如果你什么也不做,然后将leaving
e.Cancel
返回false会怎么样?Doh!我忘了:这里有一个+1哦!我忘了:这里有一个+1哦!我忘了:这里有一个+1哦!我忘了:这里有一个+1