Вопрос

Кто-нибудь знает, как программно установить выбранную 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 });
        }
    }

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top