处理 C# ActiveX 控件中的父控件事件

发布于 2024-08-23 00:43:00 字数 699 浏览 4 评论 0原文

我用 C# 编写了一个 ActiveX 用户控件。该 ActiveX 控件托管在用 Delphi 编写的 IE 中运行的旧应用程序内。 一切正常,我唯一的问题是我需要订阅托管我的控件的事件(例如 - 调整大小事件)。

目前我无法做到这一点,当我调整 IE 窗口大小时,我的控件没有收到 SizeChanged 事件。我尝试订阅父控件的事件,但父控件被列为空。 (我猜这是 Delphi 的问题。)

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

这是我的控件的代码示例:

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

        public MyActiveXControl()
        {
            InitializeComponent();
        }

        #region IScriptViewer Members

        //implement interface

        #endregion

    }

I have written an ActiveX user control in C#. That ActiveX control is hosted inside a legacy application running in IE that is written in Delphi.
Everything works, my only problem is that I need to subscribe on events of the control that is hosting me (for example - resize event).

Currently I am unable to do that, and when I resize the IE window, my control does not get a SizeChanged event. I tried to subscribe on the parent control's events, but the parent control is listed as null. (I guess it's the Delphi issue.)

I want to know if there is a way to get this working (some interface I have to implement maybe?).

Here is an example of the code of my control:

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

        public MyActiveXControl()
        {
            InitializeComponent();
        }

        #region IScriptViewer Members

        //implement interface

        #endregion

    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鯉魚旗 2024-08-30 00:43:00

您如何处理网页中的控件大小?例如,获取浏览器窗口大小/changes,然后设置边界的手动控制。如果您希望控件内的控件重新排列它们,那么可能会调用控件的 OnSize 事件。

How about you handle the control size in your WebPage. For instance, get the browser window size/changes, and then set the bounds of control manually. And if you want the controls within the control the re-arrange them, then probably call the OnSize event of the control.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文