【问题标题】:The Click event is invalid for this ActiveX control此 ActiveX 控件的 Click 事件无效
【发布时间】:2021-12-16 10:00:54
【问题描述】:

我使用作为大型软件包一部分的专有 IDE。然而,在其核心,C# 被用作语言。大多数 .Net 组件和类都可以使用。我可以用它来创建我自己的函数/WinForms,然后将它们集成到 ERP 系统中。这意味着您可以自己扩展此系统。这实现得很好,但没有文档,此时支持也很差。这就是我在这里碰运气的原因。也许有人可以帮忙。

我目前正在编写一个包含 WebBrowser 控件 (wb) 的 WinForms 窗口。我很确定这是 IE。我可以通过 MemoryStream (ms) 以编程方式创建和包含 HTML 代码:

ms.Write(bytes, 0, bytes.Length);
wb.DocumentStream = ms;

这一切都很好。现在我想从浏览器获取事件并让 IDE 为此创建事件处理程序:

try {       
  wb.Click += new EventHandler(wb_Click);
  ...} etc.
public void wb_Click (object sender, EventArgs e)
  { }

编译器没有显示错误。在执行期间,我收到错误消息: Click 事件对此 ActiveX 控件无效。什么可能触发此错误?沃尔夫

【问题讨论】:

  • "我很确定这是 IE。" - 它是(特别是MSHTML.dll),目前在 2013 年左右(即 IE11)时被冻结
  • “我使用一个专有 IDE,它是大型软件包的一部分。[...] 但没有文档,此时支持也很差” - 这并没有缩小范围down:我能想到至少有十几个符合这个描述。

标签: c#


【解决方案1】:

感谢您的提示!我可以用以下代码解决这个问题:

...
HtmlElementCollection elements = wb.Document.GetElementsByTagName("span");
    for (int n = 0; n < elements.Count;n++)
    {
        elements[n].Click += new HtmlElementEventHandler(el_Click);
    }
...
public void el_Click (object sender, HtmlElementEventArgs e)
{
    HtmlElement el = (HtmlElement) sender;
    ShowInfo(el.Id);
}

我可以继续使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多