2009-07-21 27 views
3

私のアプリケーションには、Windowsのタスクバーに表示される2つのフォームがあります。モーダルダイアログがメインフォーム上にポップアップされると、セカンダリフォームがロックされます。ただし、ユーザーがタスクバーのセカンダリフォームをクリックすると、モーダルダイアログボックスに表示され、基本的にフリーズします。タスクバーに表示されるセカンダリフォームのモーダルダイアログ

モーダルダイアログボックスがセカンダリフォームの下に表示されないようにする方法はありますか?一番上のプロパティは不十分です。これはすべてのものの上に描画されるため、アプリケーションに関連しないものでもあります。

答えて

4

あなたの問題は、ダイアログの所有者を指定していないということがあります彼らはその所有者に従属しているので、

所有窓は通常、Windowsのタスクバーに、独自の表現を必要としません。所有されたウィンドウをアクティブにすると暗黙的に所有者がアクティブ化されるため、その逆も同様です。したがって、所有されているフォームのShowInTaskBarプロパティは通常falseに設定されます。

(VBとC#で)次のコードの断片

は、作成した所有、そして表示されている新しいフォームを表示:

// defining an owner form in C#

MyForm ownedForm = new MyForm();

ownedForm.ShowInTaskbar = false;

AddOwnedForm(ownedForm);

ownedForm.Show();

あなたの場合、ダイアログの所有者ウィンドウを設定する必要があるようです。それはを示すウィンドウがより大きいに現れるのを防ぐでしょう。

EDIT私の出典:.NET Windows Forms in a Nutshellを引用してください。また、VB.NETコードを省略しました。私は適切に自分自身を鞭打ったが、それを追跡するためにPDFファイルを渡り歩く気がしない。

+0

私はあなたを愛しています。あなたは私たちのアプリケーショングループの主要な問題を解決しました:) 功績。 – jgallant

関連する問題