2013-08-26 8 views
10

私はフォームを持っていますが、アプリケーションで開いたときはいつも上にしたいと思っていますが、メインフォームが最小化されたり別のアプリケーションがあるナビゲート。私はそれが私のアプリケーションで一番上にあることを望んでいます。問題の解答後フォームを常にアプリケーションの上に作成する方法

How to make a window always stay on top in .Net?

this.TopMost = true; 

が上にフォームを作りますが、別のアプリケーションがナビゲートされるか、メインフォームが閉じているときに、フォームが上にまだあります。

Plsアプリケーションでフォームを作成するにはどうしたらいいですか?ユーザーはメインフォームで作業することができますか?

+1

あなたのアプリが最小化されていないか、アプリに属しているすべてのウィンドウの一番上に表示しますか? –

+0

@AlexeiLevenkov私のアプリケーションに属するすべてのウィンドウの最上位 –

+0

'Show 'の代わりに' ShowDialog'を使って 'Form'を開くことができます –

答えて

14

が所有するウィンドウを探しています。それは常に所有者の一番上にあり、所有者と共に最小化されます。所有しているウィンドウの良い例は、Visual Studio内のさまざまなヘルパーウィンドウです。それらをドッキング解除することはできますが、それらは常にVSメインウィンドウの上にとどまります。

所有しているウィンドウは、表示(所有者)オーバーロードで表示することによって作成します。または明示的に所有者プロパティを割り当てることによって。

4

トップレベルを設定し、所有者を設定します(下の例を参照)。

public Form1() 
{ 
    InitializeComponent(); 
    Form2 f2 = new Form2(); 
    //top level not really needed 
    f2.TopLevel = true; 
    f2.Show(this); 
} 
+2

TopLevelは既定で既に* true *です。 –

+0

この状況で 'TopLevel'を' true'に設定すると、ウィンドウは他のアプリケーションの上にとどまります。それが 'false'に設定され、所有者を持っていると、アプリケーションの上にとどまります。 – jahu

関連する問題