4

フォームのFormClosingメソッドにYes /No/Cancel Messageboxを配置しました。これがメッセージ ボックスのテキストです。データを保存しますか?

私は専門家ではなく、ユーザーがキャンセルボタンをクリックした場合の処理​​方法がわかりません。キャンセル ボタンをクリックした正確な結果は、フォームが開いたままになっている必要があります。FormClosing
メソッドでフォームを閉じるのを防ぐ方法は?

私はこれまでに書いた:;)

DialogResult dr = MessageBoxFarsi.Show("Do You Want to Save Data?","",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Warning);

//...
else if (dr == DialogResult.Cancel)
{
    ???
}

コードを完成させるのを手伝ってください!
ありがとう

4

5 に答える 5

12

FormClosing には Boolean パラメーターがあり、関数が戻るときに True に設定されている場合、フォーム IIRC を閉じるのをキャンセルします。

編集:たとえば、

private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {
    // Set e.Cancel to Boolean true to cancel closing the form
}

ここ を参照してください

于 2009-08-09T23:39:15.883 に答える
9

実は、イベントハンドラーが足りないと思います。ハンドラーがなくても、それに頼ることはできません。このようなイベントハンドラーを使用してイベントを追加する必要があります。

private void myform_Closing(object sender, FormClosingEventArgs e) 
{
    DialogResult dr = MessageBoxFarsi.Show("Do You Want to Save Data?","",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Warning)

    if (dr == DialogResult.Cancel) 
    {
        e.Cancel = true;
        return;
    }
    else if (dr == DialogResult.Yes)
    {
        //TODO: Save
    }
}

//now add a default constructor 
public myform()  // here use your form name.
{
    this.FormClosing += new FormClosingEventHandler(myform_Closing); 
}

このコードに間違ったスペルがある場合は、C#で記述していないため、ここにコピーして貼り付けてください。ここに書いたばかりです。:)

于 2011-07-14T17:20:29.193 に答える
7

次のようなものがあります。

if(dr == DialogResult.Cancel)
{
    e.Cancel = true;
}
else if(dr == DialogResult.Yes)
{
    //Save the data
}

上記のコードは、[はい] または [いいえ] を選択した場合にのみフォームを閉じ、[はい] を選択するとデータを保存します。

于 2009-08-09T23:47:16.070 に答える