制作标签式cef sharp浏览器重命名标签页

Making a tabbed cef sharp browser rename tab page

我一直在用 C# 创建一个 cefsharp 浏览器。我已经做到了,因此您可以拥有多个选项卡并正确加载页面。但是,我似乎找不到如何将选项卡重命名为页面名称。

这是 form1.cs 的加载事件中的代码:

                    Cef.Initialize();
        toolTip1.SetToolTip(button1, "Settings");
        TabPage tab = new TabPage();
        Tab newtab = new Tab();
        newtab.Show();
        newtab.TopLevel = false;
        newtab.Dock = DockStyle.Fill;
        tab.Controls.Add(newtab);
        tabControl1.TabPages.Add(tab);

我试过了:

                    private void myBrowser_isLoading(object sender) 
    {
        myBrowser.Parent.Parent.Text = myBrowser.Title;
    }

但这不起作用。

那么这是 tab.cs 的代码:

                    public Tab()
    {
        InitializeComponent();
        // Start the browser after initialize global component
        InitializeChromium();

    }
    public CefSharp.WinForms.ChromiumWebBrowser myBrowser;
    public bool nav = new bool();
    public void InitializeChromium()
    {


         myBrowser = new CefSharp.WinForms.ChromiumWebBrowser("http://www.google.com");
        this.Controls.Add(myBrowser);
        myBrowser.Dock = DockStyle.Fill;

        myBrowser.Parent = panel2;
    if (nav == true)
        {
            myBrowser.Load(textBox1.Text);
            nav = false;
        }



    }

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        Cef.Shutdown();

    }

同样,我使用的是带有最新版本的 cef sharp(或者至少是从 nuget 包管理器安装的版本)的 c#。

在 form1.cs 中的选项卡功能中,您需要添加这样的标题更改功能

browser.TitleChanged += OnBrowserTitleChanged;

您还需要指定浏览器是什么,并设置 dockstyle 以这样填充

ChromiumWebBrowser browser = new ChromiumWebBrowser("google.com");
tab.Controls.Add(browser);
browser.Dock = DockStyle.Fill;

现在对于 OnBrowserTitleChanged,您将需要一个 EventArg,它将告诉选项卡具有此格式的文档标题

this.InvokeOnUiThreadIfRequired(() => browserTabControl.SelectedTab.Text = args.Title);

这会将文档标题添加到 tabcontrol browserTabControl 是 tabcontrol 的名称,您必须将 browserTabControl 更改为 tabcontrol 的任何名称。此外,您拥有的代码不属于 cef 初始化。您需要创建一个 addNewTab 方法,其中包含要添加新选项卡时将处理的所有功能。此外,如果您想要选项卡,则不能使用面板。你需要一个 tabcontrol