2009-02-06 5 views
2

Est-ce que quelqu'un sait comment définir par programme le PropertyTab sélectionné sur un PropertyGrid dans le framework .Net? La propriété SelectedTab n'est pas paramétrable, ce qui est compréhensible, car la documentation indique que vous ne devez pas créer d'instances de PropertyTabs vous-même. Cependant, je n'arrive pas à trouver une méthode correspondante à appeler ni une propriété à définir sur l'instance PropertyGrid pour changer l'onglet du code, par exemple SelectTab (Type tabType)/int SelectedTabIndex {set; } Des idées?Définition de SelectedTab sur un PropertyGrid

Répondre

2

Poster Daniel l'a presque eu. Voici ce qui fonctionne réellement, si vous deviez appliquer à votre propre sous-classe 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 }); 
     } 
    } 

Comme Daniel dit, ceci est une mauvaise forme et tout à fait non pris en charge, mais il ne fonctionne aussi longtemps que vous n'avez pas vous inquiétez des autorisations d'accès interdomaines.

+0

Légère amélioration: Au lieu d'appeler SelectViewTabButton (ToolStripButton), il est préférable d'appeler OnViewTabButtonClick (ToolStripButton, EventArgs). –

+0

Ça a l'air mieux: -] –

Questions connexes