0

アプリケーション ウィンドウを前面 (つまり、他のすべてのウィンドウの上) に移動しようとすると問題が発生します。ユーザーがシステム トレイの notifyIcon をダブルクリックできるようにしたいのですが、アプリケーションのウィンドウが既に開かれている場合は、前面に購入することができます。次の 2 つの P/inovke を使用してみましたが、どちらも一貫して機能していないようです。ウィンドウを前面/上部に移動する方法を知っている人はいますか?

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

[DllImport("user32.dll")]
tatic extern bool SetForegroundWindow(IntPtr hWnd);

ShowWindowAsync(ADProcess.MainWindowHandle, SW_RESTORE);
SetForegroundWindow(ADProcess.MainWindowHandle);
4

1 に答える 1

0

あなたが提供した小さな情報を考えると、非同期で実行される ShowWindowAsync への呼び出しにタイミングの問題があり、その後に SetForgroundWindow への呼び出しが続くということです。

ShowWindow を使用して、それが正しく機能するかどうかを確認しましたか?

于 2011-08-03T15:29:04.017 に答える