【问题标题】:Invalid Operation Exception on opening Child Form打开子表单时出现无效操作异常
【发布时间】:2014-10-06 04:00:39
【问题描述】:

在我的VB.NET 项目子表单的InitializeComponents() 中添加以下代码后:

Skybound.Gecko.Xpcom.Initialize(Application.StartupPath & "\SuperGecko\xulrunner-1.9.1.11.en-US.win32\xulrunner")
Gecko.GeckoPreferences.User("security.warn_viewing_mixed") = False
Gecko.GeckoPreferences.User("plugin.state.flash") = 0

当我尝试从 MDI 父窗体打开此子窗体时出现此错误:

Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

如果我从InitializeComponents() 中删除代码,打开表单时会弹出另一个错误: Couldn't not find XULRunner in myxulrunnerpath

但路径是正确的,我尝试将该代码放在 Form_Load 事件上,但它仍然不起作用。

可能是什么原因?

【问题讨论】:

  • 你为什么要向InitializeComponent 方法添加代码?该方法由 Windows 窗体设计器生成并重新生成。如果您想将代码添加到表单的初始化中,则将其放入构造函数中,在调用 InitializeComponent 之后,或在 Load 事件处理程序中。
  • 在 C# 中,在 Form_Load 之前有一个对 InitializeComponent(); 的调用,但是在 VB.NET 中我可以在哪里找到对 InitializeComponent 的调用?
  • 在 C# 中,构造函数中有一个对 InitializeComponent 的调用,它在 VB 中的位置完全相同。不同之处在于默认构造函数在 VB 中是隐式的。如果您想向构造函数添加代码,则只需键入 Public Sub New() 并按 Enter。 IDE 将完成该方法,包括对 InitializeComponent 的调用。
  • @jmcilhinney 谢谢你。我会试试看它是否能解决我的问题。

标签: vb.net gecko


【解决方案1】:

如果您在 Windows 窗体中使用一个或多个 Web 浏览器,它们都需要具有相同的版本并且需要是相同的类型。例如,如果一个是Gecko,另一个是Skybound 或其他,它可能不起作用。

【讨论】:

    猜你喜欢
    • 2017-11-18
    • 1970-01-01
    • 2021-02-09
    • 2011-06-28
    • 2017-05-26
    • 2020-11-10
    • 2010-10-02
    • 1970-01-01
    相关资源
    最近更新 更多