2011-02-02 3 views
0

デスクトップに完全に固定されたフォームを作成したい...他のアプリケーションrを開いてnietherが同じときフォームは、デスクトップのアイコンなどのデスクトップに固定したまま....クリックされた....フォームを常にデスクトップに残す方法vb.netでc#

+0

を処理で、ユーザーがまったくフォームと相互作用することができないようにしたいですか?それをクリックしたときにフォーカスを得るべきではなく、それらを移動したりサイズを変更したりすることができず、ビューから隠れるべきではありません。私はそれをインストールしないように見えます。 –

+0

私はフォームをデスクトップに張りたいと思っています...私のコンピュータのアイコンの働きと同じです...クリックすると、ドライブが開きます。しかし、フォームはデスクトップに残っていなければなりません.....エクスプローラのページを開いて、このフォームをクリックすると、正面に来ると思います...それは他のものの前に来たいと思っています...デスクよりもトップ – Rockin

+0

アイコンは実際にデスクトップの一部*です。デスクトップが拡張可能であるとは限りません。ランダムなアプリケーションウィンドウをアタッチするようには設計されていません。それがうまく動作するようにすれば、あらゆる種類の問題が発生します。 [リンク先の記事](http://blogs.msdn.com/b/oldnewthing/archive/2004/02/24/79212.aspx)を読んだことがありますか?あなたがする必要があることは、あなたの申請。 'Form.SendToBack()'のようなもので、デスクトップウィンドウにアタッチしません。あなたはデスクトップの一部ではありません。あなたはアイコンのようなものではありません。 –

答えて

0

http://www.vbforums.com/showthread.php?t=351533

はそれを試してみてください?私はそれがあなたが探しているものだと思います。私は自分でそれをテストすることができませんでしたが、説明は私の理解のためにあなたが探しているものと一致するようです。

+0

私はc#とvb.netで必要です – Rockin

+0

そのページにはvb.netコードがあります。また、C#コードのポストの上部にリンクがあります。 – Omega192

0

これを使用してみてください:

[DllImport("user32")] 
public static extern int SetParent(int hWndChild, int hWndNewParent) 

hWndChildは、フォームのハンドルであるとhWndNewParentデスクトップだから

+0

私はこのコードを使用しなければなりません.....そして私のformnameはform1 ... – Rockin

+0

-1これは**恐ろしい**の提案です。 **デスクトップウィンドウを乱用しないでください**。幼稚園で学んだのと同じ原則です。あなたのものではないものを混乱させないでください。あなたのフォームをデスクトップウィンドウの子にするために 'SetParent'を呼び出すと、ウィンドウマネージャはデスクトップの入力キューと子ウィンドウを同期させ、あらゆる種類の問題を引き起こします。すべての詳細については、Raymond Chenの[この件に関するブログ記事](http://blogs.msdn.com/b/oldnewthing/archive/2004/02/24/79212.aspx)を参照してください。 –

+0

tnx、私は覚えています。 – MeelStorm

関連する問題