2010-02-23 121 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