我创建了此代码,将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);
}
(我的程序的目的是模拟Alt-Tab行为以在我的应用程序窗口之间切换,这是IE窗口)
是..我在这里包含了所有可能的功能......如果我只有一个IE窗口,它就可以了!
但是当我有2个IE窗口时,其中一个用showModalDialog / showModlessDialog函数打开 - 它不起作用。
看起来很奇怪但是当我从模态窗口切换到其父窗口时,焦点从模态窗口转到父窗口,但模态窗口仍在顶部。
请告知。
谢谢
答案 0 :(得分:1)
这就是模态窗口的工作方式 - 当父窗口可见时,它们将始终显示在父窗口上方,并且无法更改此行为。
MSDN有更多information on owner windows,特别是它提到:
拥有的窗口始终位于z顺序的所有者之上。