在 PropertyGrid 上设置 SelectedTab

发布于 2024-07-13 18:45:07 字数 243 浏览 4 评论 0原文

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

Does anybody know how to programmatically set the selected PropertyTab on a PropertyGrid in the .Net framework? The SelectedTab property is not settable, which is understandable, since the documentation indicates you should not be creating instances of PropertyTabs yourself. However, I cannot seem to find a corresponding method to call nor property to set on the PropertyGrid instance to change the tab from code, eg SelectTab(Type tabType) / int SelectedTabIndex { set; }. Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

对你而言 2024-07-20 18:45:07

海报丹尼尔几乎已经做到了。 如果您要将其应用到您自己的 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 所说,这是不好的形式并且完全不受支持,但只要您不必担心跨域访问权限,它就可以工作。

Poster Daniel almost had it. Here is what actually works, if you were to apply this to your own subclass of 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 });
        }
    }

Like Daniel says, this is bad form and entirely unsupported, but it does work as long as you do not have to worry about cross-domain access permissions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文