1

私は次の状況にあります:

  1. ParentFormWelcomeFormで開きますShowDialog
  2. WelcomeFormで開くボタンが含まれていNewProjectFormますShowDialog
  3. ユーザーがを押すOKNewProjectForm、新しいプロジェクトが作成され、両方のフォームが閉じられます(正常な動作)
  4. ユーザーがを押すCANCELNewProjectForm、両方のフォームが閉じられます(理解できる動作ですが、望ましくありません)。

私はこれがどういうわけか関係があると思いますDialogResult(これは実際にDialogResult.NoneオンになっていCANCEL NewProjectForm

両方のフォームを閉じずに上記の状況を取得するにはどうすればよいですか?


開くために使用されるコードの編集NewProjectForm

ProjectNew projectNew = new ProjectNew();
projectNew.StartPosition = FormStartPosition.CenterParent;
projectNew.ShowDialog(this);

開くために使用されるコードWelcomeForm

Welcome welcome = new Welcome();
welcome.StartPosition = FormStartPosition.CenterParent;
welcome.ShowDialog(this);

注:によって開かれるのNewProjectFormではなくWelcome、によって開かれるParentForm


2つの奇妙なものを編集します。同じコード/状況で新しいプロジェクトを作成しましたが、この動作は再現されません...

4

3 に答える 3

1

これは長年の課題であり、何度か遭遇しました。この投稿には、それに関する詳細な議論と回避策があります。

どうやら .Net 3.5 SP1 で修正されたようです (SP1 をインストールした後は再現できなくなりました)。

于 2010-01-29T11:28:28.613 に答える
1

ボタンの 1 つにDialogResult プロパティが DialogResult.Cancel に設定されていることに気づかずに、別のフォームからいくつかのボタンをコピー/貼り付けしたため、これに悩まされました。

クリックすると、含まれているフォームの DialogResult が設定され、フォームが閉じられました。

DialogResult.Noneにリセットすると問題が解決しました。

したがって、すべてのモーダル ダイアログの DialogResult プロパティを確認してください。

于 2011-07-19T16:07:15.220 に答える
0

いくつかのボタンを削除し、新しいボタンを追加しました: 解決しました。
だから、どういうわけか、奇妙なものだったはずだと思います。

于 2010-02-05T11:16:14.673 に答える