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

时间:2016-06-28 16:56:37

标签: c# cefsharp

我一直在用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();

    }

再次,我正在使用c#与最新版本的cef sharp(或至少是从nuget包管理器安装的那个)。

1 个答案:

答案 0 :(得分:1)

在form1.cs的tab函数中,你需要添加一个像这样的标题更改函数

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