Pergunta

Alguém sabe como definir programaticamente o PropertyTab selecionada em um PropertyGrid no framework .Net? A propriedade SelectedTab não é ajustável, o que é compreensível, uma vez que a documentação indica que você não deve ser a criação de instâncias de PropertyTabs si mesmo. No entanto, eu não consigo encontrar um método que corresponde a chamada nem propriedade para definir na instância PropertyGrid para mudar o separador a partir do código, por exemplo SelectTab (Tipo tabType) / SelectedTabIndex int {set; }. Alguma idéia?

Foi útil?

Solução

Poster Daniel quase tinha. Aqui está o que realmente funciona, se você fosse para aplicar isso a sua própria subclasse de 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 });
        }
    }

Como Daniel diz, este é má forma e totalmente sem suporte, mas ela não funciona, desde que você não precisa se preocupar com permissões de acesso entre domínios.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top