1

私は、いくつかのグループにまたがる大規模な .NET 4.0 C# プロジェクトに取り組んでいます。私は、ユーザーに変更を送信するように促すフォームを修正する任務を負っています。変更する必要があるフォームには、「変更を送信」、「OK」、「キャンセル」ボタンがあります。現在、「OK」および「キャンセル」ボタンによってトリガーされるイベントはありません。

ユーザーが変更を送信せずに行った場合、[OK] ボタンを押すと MessageBox が生成され、ユーザーが変更を送信するように案内されます。ここで私の問題が発生します。

「OK」ボタンが、変更をチェックするイベント buttonOk_Click をトリガーするようにしました。ここでの問題は、「OK」ボタンがすでに押されているため、ユーザーが変更を保存できるようにするためにフォームが閉じないようにする方法がわからないことです。別のグループの一部であるため、フォームを呼び出すコードを変更できません。

ユーザーが変更を保存できるように、フォームが閉じないようにするにはどうすればよいですか?

4

3 に答える 3

4

フォームのDialogResultプロパティを DialogResult.None に設定します。

 form1.DialogResult = DialogResult.None;

フォームとボタンの同じ名前のプロパティと結合されたDialogResult 列挙を使用して、モーダル フォームを閉じる方法と呼び出し元に返す値を制御します。
たとえば、DialogResult プロパティが OK に設定されたボタンを押すと、戻り値が DialogResult.OK に設定されて、モーダル フォームが ShowDialog() メソッドから強制的に終了します。

using(Form1 f = new Form1())
{
    if(f.ShowDialog() == DialogResult.OK)
    {
        // Perform post confirmation task on the form data
    }
}
于 2013-05-28T15:36:21.957 に答える
0

Bhavin Chhatrola に感謝します。あなたがそれを許可する場合、わずかな変更:)

 private void yourForm_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (MessageBox.Show("Want to exit from Application ?",  MessageBoxButtons.YesNo) == DialogResult.Yes)
     {
         //Environment.Exit(0);
         e.Cancel = false;
     }
     else
     {
         // your Code for Changes or anything you want to allow user changes etc.
         e.Cancel = true;    
     }    
}
于 2016-03-11T11:23:38.140 に答える