0

作業が画面に保存されていない場合に画面を閉じたいときにユーザーに警告しようとしています。彼らの仕事を失いたくないからです。「作業を保存せずに画面を閉じてもよろしいですか?」というポップアップでユーザーに警告します。ユーザーが [はい] をクリックすると、ポップアップと画面も閉じます。しかし、私のポップアップはすぐに表示され、ユーザーはそのポップアップで立ち往生します。

ここに FormClosing イベントのコードがあります

private void BudgetSalesFormulaDefinitionFrm_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (txtFormula.Text != string.Empty || txtFormulName.Text != string.Empty)
        {
            if (XtraMessageBox.Show("Are you sure that you want to close the screen without saving your work?", "Warning?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                this.DialogResult = System.Windows.Forms.DialogResult.Yes;
                this.Close();
            }
            else {

            }
        }
    } 

ここで何が間違っていますか?

4

1 に答える 1

2

ユーザーがクリックしたときにフォームを閉じる必要はありません。ユーザーがクリックしたときYesに設定するだけです。e.Cancel = trueNO

    if (txtFormula.Text != string.Empty || txtFormulName.Text != string.Empty){
        if (XtraMessageBox.Show("Are you sure that you want to close the screen without saving your work?", 
                                "Warning?", 
                                MessageBoxButtons.YesNo, 
                                MessageBoxIcon.Question) != DialogResult.Yes) {
            e.Cancel = true;
        }
    }

CloseReason: (get from )の条件を追加e.CloseReasonして、ユーザーによって閉じられていることを確認する必要があります。

于 2013-11-04T11:08:29.330 に答える