提问人:Nic 提问时间:11/13/2023 更新时间:11/17/2023 访问量:33
当通过 websocket 调用表单时如何加载 webview2 wiform(上一个问题在我编辑后仍然关闭)
How to load webview2 winform when form is called through websocket (previous question still closed after my edit)
问:
我对 webview2 很新,因为我发现它是我之前使用的 Cefsharp 的替代品(因为它不支持从 facebook 加载视频)。使用一个简单的 webview2 表单项目,其中包含一个按钮,该按钮显示另一个带有 webview 的表单,它按预期工作(显示带有视频的 facebook)。
现在我的障碍是我试图通过 websocket 消息接收打开 webview2 表单,但我仍然没有运气加载 webview2 并且只显示黑色表单。我正在使用 Application.Run(webview2form) 加载通过 websocket 调用的 webview wiform,因为 webview2form.show 在 websocket 上不起作用。关于这个问题有什么建议吗?谢谢。
我对 webview2 很陌生,因为我发现它是我之前使用的 Cefsharp 的替代品(因为它不支持从 facebook 加载视频)。使用一个简单的 webview2 表单项目,其中包含一个按钮,该按钮显示另一个带有 webview 的表单,它按预期工作(显示带有视频的 facebook)。
现在我的障碍是我试图通过 websocket 消息接收打开 webview2 表单,但我仍然没有运气加载 webview2 并且只显示黑色表单。我正在使用 Application.Run(webview2form) 加载通过 websocket 调用的 webview wiform,因为 webview2form.show 在 websocket 上不起作用。关于这个问题有什么建议吗?谢谢。
代码示例如下:
private void ReceiveMsgFromWebsocket(string message) {
switch (message)
{
case "Web": //if i receive web msg from websocket switchtoweb
SwitchToWeb();
break;
}
}
这是我当前的 SwitchToWeb() 代码
private void SwitchToWeb(){
Mainform mf = new MainForm()
mf.CallWeb();
}
CallWeb() 的代码
void CallWeb(){
WebViewForm dw = new WebViewForm ();
wf.InitWebview(url);
wf.Show();
}
对于我目前取得的成就,我能够显示表单,但不能显示 webview。但是当我尝试通过按键调用CallWeb()时,显示表单和加载webview没有问题
答:
到目前为止,我通过使用invoke调用来弄清楚
Invoke(new Action(() => CallWeb());
评论