2016-12-16 3 views
-1

Ich verwende C# zum Erstellen einer Fensterformularanwendung. In dem ich die MDI-Schnittstelle verwende.Window Form Closing Event

Aber ich möchte, wie das machen:

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(); 
    } 
} 

Aber das funktioniert nicht die Form, in beiden Bedingungen schließen wird mir bitte helfen.

Antwort

0

Ihr Code sieht korrekt aus, aber WinForms haben die Tendenz, sich selbst zu schließen, wenn ein Fehler auftritt. Sie müssen sicherstellen, dass der Grund des Schließens das DialogResult ist.

Bitte ändern Sie den Teil des Codes mit dem folgenden:

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(); 
    } 
} 

Wenn Sie die Dialogboxen zu sehen, wissen Sie den Code richtig funktioniert oder nicht.