Установка выбранной вкладки в PropertyGrid
-
21-08-2019 - |
Вопрос
Кто-нибудь знает, как программно установить выбранную PropertyTab в PropertyGrid в .Net framework?Свойство SelectedTab невозможно установить, что вполне понятно, поскольку в документации указано, что вы не должны создавать экземпляры PropertyTabs самостоятельно.Однако, похоже, я не могу найти соответствующий метод для вызова или свойство для установки в экземпляре PropertyGrid, чтобы изменить вкладку из кода, например, SelectTab(Type tabType) / int SelectedTabIndex { set;}.Есть какие-нибудь идеи?
Решение
Плакат Дэниела почти добился своего.Вот что на самом деле работает, если бы вы применили это к своему собственному подклассу 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 });
}
}
Как говорит Дэниел, это дурной тон и совершенно не поддерживается, но это работает до тех пор, пока вам не нужно беспокоиться о разрешениях междоменного доступа.