在PropertyGrid上设置SelectedTab

时间:2009-02-06 01:33:31

标签: c# propertygrid

有人知道如何以编程方式在.Net框架中的PropertyGrid上设置所选的PropertyTab吗? SelectedTab属性是不可设置的,这是可以理解的,因为文档表明您不应该自己创建PropertyTabs的实例。但是,我似乎无法找到一个相应的方法来调用也不要在PropertyGrid实例上设置属性来从代码中更改选项卡,例如SelectTab(Type tabType)/ int SelectedTabIndex {set; }。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

海报丹尼尔几乎拥有它。如果您要将它应用于您自己的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 });
        }
    }

就像丹尼尔所说,这是一种糟糕的形式,并且完全不受支持,但只要您不必担心跨域访问权限,它就会起作用。