6

モーダル ダイアログにメッセージ ボックスを表示した後、ALT + TAB が機能しない...

1 つのソリューション ファイルの下に 3 つのプロジェクト (P1、P2、および P3) があります。P1 には P1Form.cs が含まれ、P2 には P2Form.cs が含まれます。

これらのファイルの詳細は次のとおりです。

P1Form.cs には、MessageBox.Show()メソッドからのメッセージ ボックスを表示する 1 つのボタンが含まれています。P2Form.cs には、MessageBox.Show()メソッドからのメッセージ ボックスを表示する 1 つのボタンが含まれています。

プロジェクト P3 には、Form_A、Form_B、および Form_C の 3 つのフォームが含まれています。Form_A は MDI コンテナーであり、Form_B を子フォームとして開くボタンが 1 つあります。Form_B には、ShowDialog() メソッドからモーダル ダイアログとして Form_C を開くボタンも 1 つあります。

Form_C は P2Form.cs から継承され、P2Form.cs は P1Form.cs から継承されます。 Form_A.cs は、アプリケーションの最初のフォームとなるメイン フォームです。

必要な問題を再現する手順:

  1. MDI コンテナである Form_A を開きます
  2. Form_Bを開くボタンをクリックします
  3. Form_B のボタンをもう一度クリックすると、2 つのボタンを持つ Form_C が開きます (両方のボタンは基本クラス P1Form.cs と P2Form.cs からのものです)。
  4. メッセージ ボックスを開く Form_C のいずれかのボタンをクリックします。

問題: Alt + Tab でウィンドウを切り替えます。ウィンドウを切り替えると、現在のウィンドウのアイコンが表示されなくなります。

私が試した代替オプション...

  1. Form.show()の代わりに使用するとForm.ShowDialog、正常に動作します。
  2. 基本クラスではなく、現在のクラスですべての messageBox コーディングを記述すると、正常に動作します。

すでに試した上記の両方の代替手段を実行せずに、この問題を解決するにはどうすればよいか、誰かが私に提案できますか?

4

1 に答える 1

1

Form_B (親) から Form_C (子) への親子関係を設定してみてください。

Form_C f = new Form_C();
f.ShowDialog(this);
于 2009-09-10T22:50:28.530 に答える