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

C# 增加Windows窗体DataGrid(非DataGridView)中列标题的高度,c#,winforms,datagrid,.net-1.1,C#,Winforms,Datagrid,.net 1.1,我正在开发一个Windows窗体应用程序,我有一个DataGrid,我正在尝试增加列标题的高度 我知道datagridview是如何实现的,但我不确定DataGrid 我有一个名为“实际数量”的列,显示如下: 我可以知道增加列标题高度的方法吗?中的列标题高度是根据属性计算的,并存储在一个私有字段中。您可以使用反射获取字段,并通过以下方式更改其值: var p = typeof(DataGrid).GetField("headerFontHeight", System

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

我知道datagridview是如何实现的,但我不确定
DataGrid

我有一个名为“实际数量”的列,显示如下:


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

中的列标题高度是根据属性计算的,并存储在一个私有字段中。您可以使用反射获取字段,并通过以下方式更改其值:

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();


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

这是CaptionFont。Size@HansPassant我认为这只是增加了标题中文本的大小,而不是标题行的高度?我有一个多行的列名,但有两行不适合当前标题row@Dev它真的是
.net1.1
还是因为
DataGrid
而被标记?如果只是因为
DataGrid
,您可以将标记更改为
.Net