增加Windows窗体DataGrid(非DataGridView)中列标题的高度

时间:2016-07-07 17:16:55

标签: c# winforms datagrid .net-1.1

我正在使用Windows窗体应用程序,我有一个DataGrid我试图增加列标题的高度。

我知道它是如何为数据网格视图完成的,但我不确定DataGrid

我有一个名为Actual \n Qty的列,显示如下:

enter image description here

我是否知道可以增加列标题高度的方法?

1 个答案:

答案 0 :(得分: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

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