2

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

4

1 回答 1

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

正如 Daniel 所说,这是一种糟糕的形式,完全不受支持,但只要您不必担心跨域访问权限,它就可以工作。

于 2009-02-09T19:07:04.153 回答