获取DockPanel Suite中的当前选项卡/文档

时间:2010-12-15 11:23:42

标签: vb.net dockpanel-suite

我在一个小项目(webbrowser)中使用了Weifen Luo的DockPanel套件,并且设法能够创建标签并浏览每个标签内的webbrowser元素。

但是,当页面导航到另一个站点时,如何更改选项卡标题/名称?

基本上我只需要进入当前标签表格。

4 个答案:

答案 0 :(得分:6)

您可以使用DockPanel的ActiveContent方法获取当前标签。例如:

Form myForm = myDockPanel.ActiveContent();
myForm.TabText = "Stack Overflow";

DockPanel.ActiveDocumentDockPanel.ActivePane也很有用。

答案 1 :(得分:0)

在这几周工作之后(不是'直到现在虽然:P)我不得不说,目前这是不可能的。

答案 2 :(得分:0)

您可以通过以下方式管理自己(假设您的文档表单是特定类):

'FormClosing'和'Activated'事件

'已激活'将您自己的“有效”文档设置为“此”。 'FormClosing'将您自己的“活动”文档设置为null。

FormClosing只是为了捕捉您关闭最后一个文档的情况。 Activated是管理其他所有内容的东西,比如创建新文档并将其作为活动窗口等等。

您可以使用静态全局来管理焦点。然后从其他任何地方访问它:

public partial class MyDocument : DockContent
{
   public static MyDocument ActiveDocument { get; private set; }

答案 3 :(得分:0)

我需要能够检查哪个文档处于活动状态,并在更改了一些自动重置活动选项卡的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();