在 WinForm 自定义控件中合并 WebView2

问题描述

我正在尝试将 WebView2 控件合并到 WinForm 应用程序中。此应用程序在多个页面(选项卡、对话框表单)中使用 Web 浏览器,然后我创建了一个自定义控件(在我的示例代码中名为 WebViewCtrl)以将 WebView2 控件与一些按钮(地址文本、下一个、上一个)合并在一起并刷新)。 在我将自定义控件添加到主窗口之前,一切似乎都正常。当我将控件放在模态对话框窗口中时,当我需要关闭对话框(名为 TestDialog)时,webView2 控件丢失的是父亲仍然悬浮在屏幕上。

您可以在我在 github 中加载的一个非常简单的工作示例中检查此行为,其中包含重现问题的基本代码

https://github.com/LeonardoDaga/WebView2-Dialog-Sample

我不明白在处理对话框表单之前是否需要做一些事情来杀死控件。如果您有任何建议,请提供帮助。

解决方法

我下载了您的代码,发现您在关闭对话框时必须Dispose UserControl

TestDialog 表单中,将以下事件处理程序添加到 Form Closed 事件:

private void TestDialog_FormClosed(object sender,FormClosedEventArgs e)
{
    this.userControl11.Dispose();
}

现在,当您关闭对话框时,WebView2 将消失。