如何从 属性 网格中删除描述区域?
How remove description area from property grid?
Winforms 有一个名为 PropertyGrid
的控件。 PropertyGrid
的显示元素为描述区。默认情况下,它显示所选 属性 的名称。使用属性,程序员可以让它显示其他文本。
我想完全删除它。它占用了太多 space,我不需要让它显示任何内容。我没有在对象模型中看到任何属性来删除它。请post一个删除它的解决方案。
下面是我正在谈论的内容的屏幕截图。我想删除红色区域,使 "PercentComplete" 位于框架的底部。
将以下内容添加到您的代码中:
private static void ChangeDescriptionHeight(PropertyGrid grid, int height)
{
if (grid == null) throw new ArgumentNullException("grid");
foreach (Control control in grid.Controls)
{
if (control.GetType().Name == "DocComment")
{
var fieldInfo = control.GetType().BaseType.GetField("userSized",
BindingFlags.Instance |
BindingFlags.NonPublic);
fieldInfo.SetValue(control, true);
control.Height = height;
return;
}
}
}
并这样称呼它:
var progressTimerProperties = new ProgressTimerProperties();
propertyGridProgressTimer.SelectedObject = progressTimerProperties;
ChangeDescriptionHeight(propertyGridProgressTimer, 0);
注意到“0”了吗?它将描述区域的高度设置为 0,有效地将其删除。如果你愿意,你可以朝相反的方向扩大它以容纳更多的文本。
尝试将 PropertyGrid
的 HelpVisible
属性 设置为 false
。
Winforms 有一个名为 PropertyGrid
的控件。 PropertyGrid
的显示元素为描述区。默认情况下,它显示所选 属性 的名称。使用属性,程序员可以让它显示其他文本。
我想完全删除它。它占用了太多 space,我不需要让它显示任何内容。我没有在对象模型中看到任何属性来删除它。请post一个删除它的解决方案。
下面是我正在谈论的内容的屏幕截图。我想删除红色区域,使 "PercentComplete" 位于框架的底部。
将以下内容添加到您的代码中:
private static void ChangeDescriptionHeight(PropertyGrid grid, int height)
{
if (grid == null) throw new ArgumentNullException("grid");
foreach (Control control in grid.Controls)
{
if (control.GetType().Name == "DocComment")
{
var fieldInfo = control.GetType().BaseType.GetField("userSized",
BindingFlags.Instance |
BindingFlags.NonPublic);
fieldInfo.SetValue(control, true);
control.Height = height;
return;
}
}
}
并这样称呼它:
var progressTimerProperties = new ProgressTimerProperties();
propertyGridProgressTimer.SelectedObject = progressTimerProperties;
ChangeDescriptionHeight(propertyGridProgressTimer, 0);
注意到“0”了吗?它将描述区域的高度设置为 0,有效地将其删除。如果你愿意,你可以朝相反的方向扩大它以容纳更多的文本。
尝试将 PropertyGrid
的 HelpVisible
属性 设置为 false
。