私は Windows Vista と C#.net 3.5 を使用していますが、友人に XP でプログラムを実行させたところ、同じ問題が発生しました。
そのため、SystemTray のアイコンを使用してバックグラウンドで実行している C# プログラムがあります。低レベルのキーボード フックがあるので、2 つのキー (この場合は Ctr + ウィンドウ) を押すと、アプリケーションのメイン フォームがプルされます。フォームは、コンボ キーを押すイベント ハンドラーで全画面表示に設定されます。
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
したがって、基本的に機能します。CTR + Windows を押すと、フォーカスを与えたプログラムに関係なく、フォームが表示されます。ただし、タスクバーがフォームの上に表示されることがありますが、これは望ましくありません。そのキーコンボを押したときに常に全画面表示にしたい.
私は、アプリケーションが元々フォーカスを持っているものと関係があると考えています。しかし、メイン フォームをクリックしても、タスク バーがそこにとどまることがあります。だから、フォーカスが本当に問題なのだろうか。タスクバーが頑固で、私のプログラムの後ろに座りたくない場合があるようです。
どうすればこれを修正できるか、誰にもアイデアがありますか?
編集: 詳細 - Web ブラウザーをフルスクリーン モードにしたとき、またはパワーポイントをプレゼンテーション モードにしたときと同じ効果を達成しようとしています。
ウィンドウ フォームでは、ボーダー スタイルを none にしてウィンドウを最大化することでこれを行います。しかし、何らかの理由でウィンドウがタスクバーを覆わないことがあります。半分の時間です。
メイン ウィンドウが一番上にある場合、それをクリックすると他のウィンドウが後ろに隠れてしまいます。これは、タスク バーが非表示になっている場合には望ましくありません。