2010-12-15 9 views
0

Internet Explorerのウィンドウを一番上に表示するこのコードを作成しました。 }ウィンドウをトップに持っていく方法は?

public void avtivateIEWin(IntPtr win){ 
     int foregrRes = SetForegroundWindow(win); 
     log("foregrRes:" + foregrRes); 
     ShowWindowAsync(win, SW_SHOW); 
     BringWindowToTop(win); 
     SetActiveWindow(win); 
     SwitchToThisWindow(win, true); 
     SetFocus(win); 

Yes..Iがここで可能なすべての機能が含まれて(私のプログラムの目的は、IEのウィンドウです、私のアプリケーションのウィンドウを切り替えるにはAlt + Tabキーの動作をエミュレートすることです) ... IEのウィンドウが1つだけあればOKです!

しかし、2つのIEウィンドウがあるとき、そのうちの1つがshowModalDialog/showModlessDialog関数で開かれました。機能しません。

私はモーダルウィンドウからその親に切り替えると、モーダルウィンドウから親にフォーカスが移動しますが、モーダルウィンドウはまだ上にあります。

お知らせください。

はありがとう

モーダルウィンドウがどのように動作するかだ

答えて

1

- 親が表示されているとき、彼らは常に親ウィンドウの上に表示され、この動作を変更する方法はありません。所有ウィンドウがzために、その所有者の上に常に

MSDNはinformation on owner windows以上を有する、具体的には、と述べて。

+0

Ok ..私はそれを得ました...次に、私は親を示すためにすべてのモーダルウィンドウを最小化するために別のアプローチを使用することができます。このアプローチの欠点はありますか? – michaels123

+2

また、モーダルウィンドウが本当に必要ない場合は、モーダルウィンドウを開かないでください。非モーダルウィンドウのように動作させたい場合、モーダルウィンドウを使用しているのはなぜですか? –

関連する問題