在 Windows Forms DataGrid(不是 DataGridView)中增加列 Header 的高度

Increase the Height of Column Header in a Windows Forms DataGrid (Not DataGridView)

我正在开发一个 Windows Forms 应用程序,我有一个 DataGrid,我正试图为其增加列的高度 headers。

我知道它是如何为 datagridview 完成的,但我不确定 DataGrid

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

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

DataGrid is calculated based on HeaderFont property and is stored in a private filed headerFontHeight 中列 header 的高度。您可以使用反射获取该字段并以这种方式更改其值:

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

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