2010-02-23 82 views
1

我已经在C#中编写了一个ActiveX用户控件。该ActiveX控件托管在使用Delphi编写的IE中运行的遗留应用程序中。 一切正常,我唯一的问题是我需要控制托管我的控件的事件(例如 - 调整事件大小)。在C#ActiveX控件中处理父控件事件

目前我无法做到这一点,当我调整IE窗口的大小时,我的控件没有得到一个SizeChanged事件。我试图订阅父控件的事件,但父控件列为空(我想这是德尔福问题)

我想知道是否有办法让这个工作(我必须实现一些接口?也许)

这里是我控制的代码示例:

[ 
     ClassInterface(ClassInterfaceType.AutoDispatch), 
     ComVisible(true), 
     Guid("<some guid>"), 
    ] 
    public partial class MyActiveXControl : UserControl, IMyInterface 
    { 

     public MyActiveXControl() 
     { 
      InitializeComponent(); 
     } 

     #region IScriptViewer Members 

     //implement interface 

     #endregion 

    } 

谢谢!

回答

0

如何处理您的网页中的控件大小。例如,获取browser window size /更改,然后手动设置控件的边界。如果您希望控件内的控件重新排列它们,那么可能会调用控件的OnSize事件。

+0

我的问题是,我没有任何控制在我托管的网页。所以使用JavaScript不是我的选择。 也许我可以得到指向IE窗口的指针,并获得大小的方式,但我想获得SizeChanged事件,而不是每次手动检查窗口大小 – Rubinsh 2010-02-24 15:12:59

+0

不确定,但我会研究将委托浏览器事件 - “一些如何” - ActiveX控件,以便它会作出相应的反应。 – 2010-02-25 06:04:29