Winforms的控件標題爲PropertyGrid
。 PropertyGrid
的顯示元素是描述區域。默認情況下,它顯示所選屬性的名稱。使用屬性,程序員可以讓它顯示其他文本。 我想完全刪除它。它佔用了太多的空間,我不需要顯示任何東西。我沒有看到對象模型中的任何屬性將其刪除。請發佈一個解決方案,以刪除它。如何從屬性網格中刪除描述區域?
下面是我正在談論的屏幕截圖。我想刪除紅色區域,使「PercentComplete」位於框架的底部。
Winforms的控件標題爲PropertyGrid
。 PropertyGrid
的顯示元素是描述區域。默認情況下,它顯示所選屬性的名稱。使用屬性,程序員可以讓它顯示其他文本。 我想完全刪除它。它佔用了太多的空間,我不需要顯示任何東西。我沒有看到對象模型中的任何屬性將其刪除。請發佈一個解決方案,以刪除它。如何從屬性網格中刪除描述區域?
下面是我正在談論的屏幕截圖。我想刪除紅色區域,使「PercentComplete」位於框架的底部。
嘗試將PropertyGrid
的HelpVisible
屬性設置爲false
。
添加以下代碼:
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,有效地將其刪除。如果你想要的話,你可以走相反的方向,讓它更大以容納更多的文字。
如果有人有一個不使用反射的解決方案,我是「全耳朵」。 – sapbucket
謝謝你,這個伎倆。任何卡住在這個問題上的人使用vesan的解決方案。如果您想更改幫助窗口的高度,可以使用我的解決方案(使用反射)。 – sapbucket