Получение текущей вкладки / документа в DockPanel Suite - PullRequest
1 голос
/ 15 декабря 2010

Я использую DockPanel Suite от Weifen Luo в небольшом проекте (веб-браузер), и мне удалось создать вкладки и перемещаться по элементу веб-браузера внутри каждой вкладки.

Но как я могу изменить название / название вкладки, когда страница переходит на другой сайт?

В основном мне просто нужно войти в форму текущих вкладок.

Ответы [ 4 ]

6 голосов
/ 22 октября 2012

Вы можете получить текущую вкладку с помощью метода ActiveContent DockPanel.Например:

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

DockPanel.ActiveDocument и DockPanel.ActivePane также могут быть полезны.

0 голосов
/ 01 апреля 2016

Мне нужна была возможность проверить, какой документ был активным, и снова установить этот документ активным после изменения некоторых элементов пользовательского интерфейса, которые автоматически сбрасывают активную вкладку, поэтому я использовал некоторые фрагменты отсюда и FAQ по 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();
0 голосов
/ 21 октября 2013

Вы можете управлять своим собственным (если ваша форма документа относится к определенному классу), управляя:

События «FormClosing» и «Активировано»

«Активировано» установите свой собственный «активный» документ на «это». «FormClosing» устанавливает ваш собственный «активный» документ на ноль.

FormClosing просто для того, чтобы поймать случай, когда вы закрываете последний документ. Activated - это то, что управляет всем остальным, например, когда новый документ создается и становится активным окном и т. Д.

Вы можете использовать статический глобал для управления фокусом. Затем получите к нему доступ из любого места:

public partial class MyDocument : DockContent
{
   public static MyDocument ActiveDocument { get; private set; }
0 голосов
/ 24 января 2011

Поработав над этим несколько недель (но не до сих пор: P), я должен сказать, что в настоящее время это невозможно.

...