2016-07-07 59 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

您可以將您認爲是足夠的高度,也可以計算出所有列的文本的高度並設置字段設置爲最大值。