2016-12-16 6 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であることを確認する必要があります。

次にあなたのコードの一部を変更してください:あなたがdialogboxesが表示された場合

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

、あなたはコードが正常かどうか動作します知っているだろう。

関連する問題