2015-04-26 87 views
5

Winforms的控件標題爲PropertyGridPropertyGrid的顯示元素是描述區域。默認情況下,它顯示所選屬性的名稱。使用屬性,程序員可以讓它顯示其他文本。 我想完全刪除它。它佔用了太多的空間,我不需要顯示任何東西。我沒有看到對象模型中的任何屬性將其刪除。請發佈一個解決方案,以刪除它。如何從屬性網格中刪除描述區域?

下面是我正在談論的屏幕截圖。我想刪除紅色區域,使「PercentComplete」位於框架的底部。

enter image description here

回答

9

嘗試將PropertyGridHelpVisible屬性設置爲false

+0

謝謝你,這個伎倆。任何卡住在這個問題上的人使用vesan的解決方案。如果您想更改幫助窗口的高度,可以使用我的解決方案(使用反射)。 – sapbucket

1

添加以下代碼:

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,有效地將其刪除。如果你想要的話,你可以走相反的方向,讓它更大以容納更多的文字。

+0

如果有人有一個不使用反射的解決方案,我是「全耳朵」。 – sapbucket