2016-07-07 53 views
1

我正在使用Windows窗体应用程序,并且我有一个DataGrid,我正在尝试增加列标题的高度。增加Windows窗体DataGrid中的列标题的高度(不是DataGridView)

我知道如何完成datagridview,但我不确定DataGrid

我有一个名为Actual \n Qty列,而这正显示如下:我知道一种方法,我们可以提高的列标题高度

enter image description here

+0

这是CaptionFont.Size –

+0

@HansPassant我认为这只是增加了标题中的文本大小,但不是标题行的高度?我在多行中有一个列名,但是两行不符合当前标题行 – DoIt

+0

@Dev它真的是'.Net 1.1'还是因为DataGrid而用它标记?如果仅仅是因为'DataGrid',你可以将标签更改为'.Net'。 –

回答

1

列标题的高度根据HeaderFont属性计算并存储在私有文件headerFontHeight中。你可以使用反射获取字段并改变它的值是这样的:

var p = typeof(DataGrid).GetField("headerFontHeight", 
    System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); 
p.SetValue(dataGrid1, dataGrid1.HeaderFont.Height * 2); 

var m = typeof(DataGrid).GetMethod("OnLayout", 
    System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); 
m.Invoke(dataGrid1, new object[] { null }); 
dataGrid1.Invalidate(); 

enter image description here

您可以将您认为是足够的高度,也可以计算出所有列的文本的高度并设置字段设置为最大值。