日期:2014-05-19  浏览次数:20891 次

窗体关闭时弹出的提示怎么会出现两次?
private   void   frmAdmin_FormClosing(object   sender,   FormClosingEventArgs   e)
                {
                        DialogResult   objDialogResult   =   MessageBox.Show( "此操作将关闭窗体,是否继续? ",   "提示 ",   MessageBoxButtons.YesNo);
                        if   (objDialogResult.Equals(DialogResult.Yes))
                        {
                                Application.Exit();
                        }
                        else   {
                                e.Cancel   =   true;
                        }
                }
点击右上角的关闭按钮后,弹出一个对话框,我选择"是"的话,它还会弹出一个一样的对话框,选择"否"的话,就没有问题了.
要怎样才能选择"是"以后就不再弹出对话框了呢?


------解决方案--------------------
建議單步跟蹤程序,查看程序執行情況,從而解決問題!
------解决方案--------------------
简单点的改法,这样就可以了
private void frmAdmin_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult objDialogResult = MessageBox.Show( "此操作将关闭窗体,是否继续? ", "提示 ", MessageBoxButtons.YesNo);
if (objDialogResult.Equals(DialogResult.No))
{
e.Cancel = true;
}
}

按你原来的写法修改,把
if (objDialogResult.Equals(DialogResult.Yes))
{
Application.Exit();
}
这里的Application.Exit();去掉即可
if (objDialogResult.Equals(DialogResult.Yes))
{
}

------解决方案--------------------
试试:

private void frmAdmin_FormClosing(object sender, FormClosingEventArgs e)
{

if (MessageBox.Show( "此操作将关闭窗体,是否继续? ", "提示 ", MessageBoxButtons.YesNo).Equals(DialogResult.Yes))
{
Application.Exit();
}
else {
e.Cancel = true;
}
}

------解决方案--------------------
private void frmAdmin_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult objDialogResult = MessageBox.Show( "此操作将关闭窗体,是否继续? ", "提示 ", MessageBoxButtons.YesNo);
if (!objDialogResult.Equals(DialogResult.Yes))
{
e.Cancel = true;
}
}
------解决方案--------------------
Application.Exit();它又执行了关闭窗体的事件.你应该把这个写在private void frmAdmin_FormClosed事件中