制作标签式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
我一直在用 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