Установка SelectedTab на PropertyGrid - PullRequest
2 голосов
/ 06 февраля 2009

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

1 Ответ

2 голосов
/ 09 февраля 2009

Плакат Даниэля почти был. Вот что на самом деле работает, если вы примените это к своему подклассу 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 });
        }
    }

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

...