Frage

Weiß jemand, wie programmatisch das ausgewählte PropertyTab auf einem Property in .NET Framework auf? Die selectedTab Eigenschaft ist nicht einstellbar, was verständlich ist, da die Dokumentation anzeigt, sollten Sie keine Instanzen von PropertyTabs Erstellung werden sich. Allerdings kann ich nicht ein entsprechendes Verfahren zu finden scheinen zu rufen noch Eigentum an der Property Instanz, um den Reiter aus dem Code zu ändern, zB SelectTab (Typ tabType) / int SelectedTabIndex {gesetzt; }. Irgendwelche Ideen?

War es hilfreich?

Lösung

Poster Daniel hatte es fast. Hier ist, was tatsächlich funktioniert, wenn du dies auf Ihre eigene Unterklasse von Property anwenden:

    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 });
        }
    }

Wie Daniel sagt, das ist schlechte Form und völlig ungestützt, aber es so lange funktioniert, wie Sie müssen keine Sorgen über Cross-Domain-Zugriffsberechtigungen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top