C#ActiveX--如何使弹出对话框(windows.Forms.Form)始终位于浏览器(IE8)之上

C#ActiveX--如何使弹出对话框(windows.Forms.Form)始终位于浏览器(IE8)之上,c#,forms,activex,showdialog,C#,Forms,Activex,Showdialog,我已经使用C#编写了ActiveX,以便与其他基于浏览器的系统b通信,由于现有的体系结构,它需要在其他线程中弹出一个对话框。当前的行为是,如果单击浏览器标题,对话框可以隐藏在后面。是否可以将弹出对话框始终保持在浏览器顶部(IE8)?提前谢谢 public int operation() { .... MyMsgBox myMsgBox = new MyMsgBox(message,title); evt = System.Threading.AutoRes

我已经使用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....  
    }  
}

我已尝试将表单的最顶端设置为“true”,然后它将始终位于所有应用程序的最顶端。这不符合要求,因为弹出对话框只需始终位于浏览器顶部。谢谢。

我认为你想要的东西不可能实现

但是,您可以在整个页面上设置一个div,并在鼠标移动时设置和事件,以调用ActiveX对象上的BringToFront。这应该能奏效