2016-12-16 100 views
-1

我正在使用C#创建窗体窗体应用程序。我正在使用MDI界面。窗体关闭事件

但我要作出这样的:

private void Earnings_Leave(object sender, EventArgs e) 
{ 
    DialogResult result = MessageBox.Show("Are you sure to Quite this form","confirmation Message", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); 

    if(result==DialogResult.Yes) 
    { 
     this.Close(); 
    } 
    else if (result == DialogResult.No) 
    { 
     Earnings sibling = new Earnings(); 
     sibling.MdiParent = this.MdiParent; 
     sibling.Show(); 
    } 
} 

但这种不正常的形式将在两种情况下关闭,请帮助我。

回答

0

您的代码看起来是正确的,但是WinForms在遇到错误时有自动关闭的倾向。 您必须确保关闭的原因是DialogResult。

请以下更改代码的一部分:

private void Earnings_Leave(object sender, EventArgs e) 
{ 
    DialogResult result = MessageBox.Show("Are you sure to Quite this form","confirmation Message", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); 

    if(result==DialogResult.Yes) 
    { 
MessageBox.Show("You selected Yes", "Yes Message", MessageBoxButtons.OK); 
     this.Close(); 
    } 
    else if (result == DialogResult.No) 
    { 
MessageBox.Show("You selected No", "No Message", MessageBoxButtons.OK); 
     Earnings sibling = new Earnings(); 
     sibling.MdiParent = this.MdiParent; 
     sibling.Show(); 
    } 
} 

如果你看到dialogboxes,你就会知道代码工作正常与否。