如何从 PropertyGrid remove/hide 'Property Pages' 按钮?
How to remove/hide 'Property Pages' button from a PropertyGrid?
我正在处理 属性 网格面板,我试图删除或隐藏 属性 页面按钮,因为它对我没用,我尝试将 ToolBarVisible 设置为 false,但它隐藏了工具栏中的所有三个按钮。这是我的 属性 网格的样子:
没有正式的方法,但你可以破解 属性 网格,访问它的内部控件。
这是一个示例代码,它试图尽可能优雅地完成它。您还可以测试最后一个控件的文本是否为“属性 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;
}
使用风险自负。
我正在处理 属性 网格面板,我试图删除或隐藏 属性 页面按钮,因为它对我没用,我尝试将 ToolBarVisible 设置为 false,但它隐藏了工具栏中的所有三个按钮。这是我的 属性 网格的样子:
没有正式的方法,但你可以破解 属性 网格,访问它的内部控件。
这是一个示例代码,它试图尽可能优雅地完成它。您还可以测试最后一个控件的文本是否为“属性 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;
}
使用风险自负。