Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#使用CefSharp重新打开表单_C#_Forms_Cefsharp - Fatal编程技术网

C#使用CefSharp重新打开表单

C#使用CefSharp重新打开表单,c#,forms,cefsharp,C#,Forms,Cefsharp,有一个代码: MainBot mainBot = new MainBot (); mainBot.IdBot = "hm"; mainBot.Url = "https://www.home-style.shop/"; mainBot.Proxy = ""; mainBot.IdBtn = ""; mainBot.TimeB

有一个代码:

        MainBot mainBot = new MainBot ();
        mainBot.IdBot = "hm";
        mainBot.Url = "https://www.home-style.shop/";
        mainBot.Proxy = "";
        mainBot.IdBtn = "";
        mainBot.TimeBtnClick = 1000;
        mainBot.TimeReturn = 5000;
        mainBot.Show ();
它像使用浏览器一样打开表单(使用CefSharp库),然后在TimeReturn->
this.Close()中指定的时间后关闭表单
当您通过按钮重新打开表单时,它写道->“每个进程只能初始化一次CEF。这是基础CEF/Chromium框架的一个限制。您可以更改很多(不是全部)通过RequestContext.SetPreference在运行时进行设置。请参阅https://github.com/cefsharp/cefsharp/wiki/General Usage#请求上下文浏览器隔离使用Cef.IsInitialized以防止此异常。如果您意外看到此情况,则可能在创建ChromiumWebBrowser实例后调用Cef.Initialize必须在创建第一个实例之前。”

可以执行一次插入。因此,我在表单中添加了**FormClosing**并输入了
Cef.Shutdown()初始化错误已修复,但现在,当重新打开时,表单不会打开,打开表单的表单只是挂起并关闭。

请告诉我要做什么

CefSharp可以通过两种方式初始化:

  • 显式:使用适当的Cef设置调用Cef.Initialize(设置)
  • 隐式:打开新的chromiumWebBrowser时,CEF将使用默认设置初始化
但是,您的代码不清楚如何执行初始化部分

就我个人而言,我更喜欢用我所选择的设置来明确地做到这一点。无论你在哪里做

  • 主要方法
  • 表单构造函数
  • 加载/显示事件
只需确保每个应用程序只调用一次initialize! 在打开任何表单之前,我通常使用main方法

cef也是如此。关闭:一旦调用cef,就不能再次打开! 我在应用程序之后调用它。在应用程序关闭之前运行


如异常所示,请在

中查看更多信息。使用Cef.i初始化以防范异常。仅当Cef.IsInitialized为false时调用Cef.Initialize。