我使用C#编写ActiveX与其他基于浏览器的系统进行通信b,由于现有的体系结构,它需要在其他线程中弹出一个对话框。目前的行为是,如果我点击浏览器标题,对话框可以隐藏在后面。是否可以将弹出对话框始终保持在浏览器(IE8)的顶部?提前谢谢。
public int operation()
{
....
MyMsgBox myMsgBox = new MyMsgBox(message,title);
evt = System.Threading.AutoResetEvent(false);
Thread showDialogThread = new Thread(ShowMsgDialog);
ShowDislogThread.SetApartmentState(System.Threading.ApartmentState.STA);
showDialogThread.Start(myMsgBox);
System.Threading.WaitHanle.WaitAll(new System.Threading.WaitHandle[] {evt});
....
}
public void ShowMsgDialog(object requestObj)
{
MyMsgBox msgBox = (MyMsgbox)requestObj;
msgBox.showDialog();
evt.Set();
}
Class MyMsgBox:Form
{
public MyMsgBox(string message, string title)
{
//do initialization....
}
}
我试图将TopMost of Form设置为'true',然后它将始终位于所有应用程序的顶部。它不符合要求,因为弹出窗口对话框只需要始终位于浏览器的顶部。感谢。
答案 0 :(得分:0)
我不认为你想要的东西是可能的。
但是,您可以在所有页面上展开div,并在鼠标移动时设置和事件以在ActiveX对象上调用BringToFront。这应该可以解决问题。