2009-02-06 2 views
2

Кто-нибудь знает, как программно установить выбранный PropertyTab в PropertyGrid в инфраструктуре .Net? Свойство SelectedTab не может быть установлено, что понятно, поскольку в документации указано, что вы не должны создавать экземпляры PropertyTabs самостоятельно. Однако я не могу найти соответствующий метод для вызова или свойства для установки в экземпляре PropertyGrid для изменения вкладки из кода, например SelectTab (Type tabType)/int SelectedTabIndex {set; }. Есть идеи?Настройка SelectedTab на PropertyGrid

ответ

2

Плакат Даниэль почти имел это. Вот что на самом деле работает, если вы должны были применить это на свой собственный подкласс PropertyGrid:

public int SelectedTabIndex 
    { 
     set 
     { 
      Type pgType = typeof(PropertyGrid); 
      BindingFlags flags = BindingFlags.NonPublic | BindingFlags.Instance; 

      ToolStripButton[] buttons = (ToolStripButton[]) pgType.GetField("viewTabButtons", flags).GetValue(this); 
      pgType.GetMethod("SelectViewTabButton", flags).Invoke(this, new object[] { buttons[value], true }); 
     } 
    } 

Как Даниил говорит, что это плохая форма и совершенно не поддерживается, но он работает до тех пор, пока вы не должны беспокоиться о разрешениях междоменного доступа.

+0

Небольшое улучшение: вместо вызова SelectViewTabButton (ToolStripButton) предпочтительным является вызов OnViewTabButtonClick (ToolStripButton, EventArgs). –

+0

Это выглядит лучше: -] –

Смежные вопросы