.NET Framework 4.0 または 3.5 環境で、ControlBox プロパティに False を設定したフォームをモーダル表示した場合、キャプションの設定によりフォームが意図せず閉じる

現象
Microsoft .NET Framework 4.0 または Microsoft .NET Framework 3.5 がインストールされた環境で、Windows フォーム アプリケーション プロジェクトのフォームの ControlBox プロパティに False を設定し、ShowDialog メソッドによりフォームをモーダル表示して、フォームの Text プロパティに String.Empty を設定すると、フォームが意図せず閉じます。
回避策
この現象を回避するには、以下のいずれかの方法を実行してください。
  • ShowDialog メソッドを使用してフォームを表示する前に、ControlBox プロパティおよび Text プロパティを設定します。
  • フォームを表示した後の、Text プロパティを設定する際に DialogResult プロパティに DialogResult.None を設定します。
状況
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
詳細

問題の再現手順

  1. .NET Framework 4.0 または .NET Framework 3.5 をインストールした環境で、Windows フォーム アプリケーション プロジェクトを新規作成します。
  2. プロジェクトに Form クラスを追加し、Form2 と設定します。
  3. [Form2] の ControlBox プロパティ を False に設定します。
  4. [Form2] 上にボタンを配置し、クリックされたら Text プロパティ に String.Empty を設定するコードを追加します。
  5. [Form1] 上にボタンを配置し、[Form2] を作成して ShowDialog メソッドを実行するコードを追加します。
  6. このプログラムを実行し、[Form1] 上のボタンをクリックします。
  7. [Form2] が表示されたら、[Form2] 上のボタンをクリックします。

結果

[Form2] のコントロール ボックスが、意図せず閉じます。
プロパティ

文書番号:2563122 - 最終更新日: 10/04/2016 15:24:00 - リビジョン: 4.0

Microsoft .NET Framework 4.0, Microsoft .NET Framework 3.5

  • kbharmony kbexpertiseinter kbexpertiseadvanced kbtshoot kbbug kbfix KB2563122
フィードバック