【问题标题】:How to remove/hide 'Property Pages' button from a PropertyGrid?如何从 PropertyGrid 中删除/隐藏“属性页面”按钮?
【发布时间】:2020-09-09 08:40:25
【问题描述】:

我正在使用 propertyGrid 面板,我正在尝试删除或隐藏“属性页”按钮,因为它对我没用,我尝试将 ToolBarVisible 设置为 false,但这会隐藏工具栏中的所有三个按钮。这是我的属性网格的样子:

【问题讨论】:

  • ToolbarVisible 隐藏了和其他两个;够了吗?
  • @MarcGravell 我确实需要另外两个按类别或字母顺序对属性进行排序。
  • k,在这种情况下:我不知道有一种简单的方法可以做到这一点,抱歉;也许其他人会...
  • 没有任何记录。但是你可以破解它,例如:var bs = propertyGrid1.Controls.OfType<ToolStrip>().FirstOrDefault().Items; bs[bs.Count - 1].Visible = false; bs[bs.Count - 2].Visible = false; 供参考这是创建它的代码(似乎它总是在最后):referencesource.microsoft.com/#system.windows.forms/winforms/…
  • 谢谢@SimonMourier,我会试一试并回复你。

标签: c# propertygrid


【解决方案1】:

没有官方方法,但你可以破解属性网格,访问它的内部控制。

这是一个示例代码,它试图以最优雅的方式做到这一点。您还可以测试最后一个控件的文本是否为“Property Pages”,但它可能不适用于本地化版本。

var buttons = propertyGrid1.Controls.OfType<ToolStrip>().FirstOrDefault()?.Items;
if (buttons != null &&
    buttons.Count >= 2 &&
    buttons[buttons.Count - 1] is ToolStripButton && // could test Text...
    buttons[buttons.Count - 2] is ToolStripSeparator)
{
    buttons[buttons.Count - 1].Visible = false;
    buttons[buttons.Count - 2].Visible = false;
}

使用风险自负。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多