-1

タスクバーから自分のプログラムを前面に表示する方法 (良い名前かわかりません) または c# の winform/wpf でこのイベントの名前を教えてください。問題は、プログラムを最小化してもう一度クリックすると表示される場合がありますが、別のプログラムの下にある場合があり、プログラムのアイコンをクリックして常に前面に表示するときにコードを作成したい場合があります。

塗装例

4

1 に答える 1

2

SetForegroundWindow()およびメソッドを使用してみてくださいShowWindow()。それらのインポートは次のとおりです。

[DllImport("User32.dll")]
internal static extern IntPtr SetForegroundWindow(IntPtr hWnd);

[DllImport("user32.dll")]
internal static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

ActiveResize (または任意の名前) という定数を宣言します。このようにします。internal const int ActiveResize = 3; 詳細なサイズ コードはこちらです。

次に、次のようなActivatedイベントを生成します

private void YOURPROGRAM_Activated(object sender, EventArgs e)
{
    Process currentProcess = Process.GetCurrentProcess();
    IntPtr hWnd = currentProcess.MainWindowHandle;
    if (hWnd != User32.InvalidHandleValue)
    {
        User32.SetForegroundWindow(hWnd);
        User32.ShowWindow(hWnd, ActiveResize);
    }
}

これが行うことは、フォームがアクティブ化されたメッセージを取得する方法でフォームがアクティブになったときです。メッセージを受け取ると、このコードが実行され、ウィンドウが強制的にフォアグラウンドに設定されます。お役に立てれば。

于 2016-02-18T15:08:52.650 に答える