Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.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#_Cefsharp_Chromium Embedded - Fatal编程技术网

C# 如何使用cefsharp在选项卡控件中打开链接标签?

C# 如何使用cefsharp在选项卡控件中打开链接标签?,c#,cefsharp,chromium-embedded,C#,Cefsharp,Chromium Embedded,我刚刚在windows窗体应用程序中使用了Cefsharp库,开发了一个类似web浏览器的应用程序。我的浏览器有几个选项卡,但每当用户单击属性为_blank的“链接标记”时,应用程序就会在一个单独的窗口中打开一个新链接,尽管我希望在选项卡控件的新选项卡中打开链接 我在应用程序中使用的内容: C#windows窗体应用程序 Cefsharp库中的ChromiumWebBrowser类 如果有人能提供帮助,我将非常高兴。我刚刚查阅了文档,发现了问题所在 您需要使用LifeSpanHandl

我刚刚在windows窗体应用程序中使用了Cefsharp库,开发了一个类似web浏览器的应用程序。我的浏览器有几个选项卡,但每当用户单击属性为_blank的“链接标记”时,应用程序就会在一个单独的窗口中打开一个新链接,尽管我希望在选项卡控件的新选项卡中打开链接

我在应用程序中使用的内容:

  • C#windows窗体应用程序

  • Cefsharp库中的ChromiumWebBrowser类


如果有人能提供帮助,我将非常高兴。

我刚刚查阅了文档,发现了问题所在

  • 您需要使用LifeSpanHandler类中断弹出窗口,并通过将newBrowser指定为“null”来禁用打开新浏览器,然后您就可以执行指令了
  • 如果您想在“自我”选项卡中打开窗口,只需删除下面代码中的注释
以下是我为我的问题所做的:

 public class LifespanHandler : ILifeSpanHandler
    {

        bool ILifeSpanHandler.OnBeforePopup(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, string targetUrl, string targetFrameName, WindowOpenDisposition targetDisposition, bool userGesture, IPopupFeatures popupFeatures, IWindowInfo windowInfo, IBrowserSettings browserSettings, ref bool noJavascriptAccess, out IWebBrowser newBrowser)
        {

            Program.Form.Invoke(new Action(() => Program.Form.newPage(targetUrl)));

            //browser.MainFrame.LoadUrl(targetUrl);

            newBrowser = null;
            return true;
        }
    }
希望这对您有用。:)