奇妙な動作をするダイアログフォームがあります-キャンセルボタンを2回押す必要があります(最初にDialogResult.Noneを返し、この動作の理由を見つけることができません)
1. ダイアログフォームを開くコード
using (var dlgProcess = new DlgFormProcessMismatches())
{
if (dlgProcess.ShowDialog(this) == DialogResult.OK)
{
// do stuff
}
else if (dlgProcess.ShowDialog(this) == DialogResult.Cancel)
{
MessageBox.Show(@"Process was cancelled...");
}
}
2. dialogForm には次のものがあります。
1) 「キャンセル」ボタンのプロパティ DialogResult=Cancel を設定します。
2)キャンセルボタンのクリックイベントで、DialogResultを明示的に設定します(ボタンのDialogresult = Cancelを設定するだけで十分なはずなので、これを使用して、または使用せずに試しました)
this.DialogResult=DialogResult.Cancel
しかし、問題は、最初にキャンセルボタンを押すとDialogResult.Noneが返されるため、dialogFormが再度表示され、もう一度押すとキャンセルボタンがDialogResult.Cancelを返すことです。
何が問題なのですか?何か案は?