我在一个小项目(webbrowser)中使用 Weifen Luo 的DockPanel Suite,并且设法能够创建选项卡并在每个选项卡内导航 webbrowser 元素。
但是,当页面导航到另一个站点时,我如何更改标签标题/名称?
基本上我只需要进入当前的标签表单。
我在一个小项目(webbrowser)中使用 Weifen Luo 的DockPanel Suite,并且设法能够创建选项卡并在每个选项卡内导航 webbrowser 元素。
但是,当页面导航到另一个站点时,我如何更改标签标题/名称?
基本上我只需要进入当前的标签表单。
您可以使用 DockPanel 的ActiveContent
方法获取当前选项卡。例如:
Form myForm = myDockPanel.ActiveContent();
myForm.TabText = "Stack Overflow";
DockPanel.ActiveDocument
也DockPanel.ActivePane
很有用。
您可以通过管理来管理自己的(假设您的文档表单是一个特定的类):
'FormClosing' 和 'Activated' 事件
“已激活”将您自己的“活动”文档设置为“此”。'FormClosing' 将您自己的“活动”文档设置为空。
FormClosing 只是为了捕捉您关闭最后一个文档的情况。激活是管理其他一切的东西,比如当一个新文档被创建并成为活动窗口等时。
您可以使用静态全局来管理焦点。然后从其他任何地方访问它:
public partial class MyDocument : DockContent
{
public static MyDocument ActiveDocument { get; private set; }
经过几周的努力(直到现在:P)我不得不说,这目前是不可能的。
我需要能够检查哪个文档处于活动状态,并在更改一些自动重置活动选项卡的 UI 元素后再次将该文档设置为活动状态,因此我使用了此处和 DockPanel 常见问题解答中的一些片段,并进行了一些挖掘以找出回答这个问题:
public string GetActive()
{ //Verify if forms that dock in main window are already open
foreach (DockContent form in dockMain.Contents)
{
if (form.DockHandler.Pane.ActiveContent.DockHandler.Form.Name.ToString() == form.Name.ToString())
{
string formName = form.Name.ToString();
return formName;
}
}
return null;
}
然后在其他一些方法中,您将调用:
string activeForm = GetActive();