Definir o SelectedTab em um PropertyGrid
-
21-08-2019 - |
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?
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.