确保CoreWebView2Async Winform中的“无效窗口句柄”异常

问题描述

当试图用旧的 winform 表单中的 WebView2 替换 AxWebbrowser 时,我得到一个 “无效的窗口句柄 0x80070578”异常。

起初是因为 Edge 版本较旧,但在与 Canary 约会后,它在独立项目中运行良好。

async void InitializeAsync()
{
    await webView.EnsureCoreWebView2Async(null); //this throws an exception
}

我错过了什么?

解决方法

好吧,在尝试了一天我能想到的任何事情之后,我注意到 winform 没有供设计人员使用的单独文件。这让我想到这可能是一个兼容性问题(原始表单创建于 2015 年左右),因此我尝试在 VS 2019 中重新创建 winform。

重新创建表单按预期工作。现在运行很顺利。 还值得注意的是,旧形式有这一行

this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;