DataGridViewAutoSizeColumnMode.ColumnHeader将行标题调整为2行

时间:2018-05-11 17:03:01

标签: c# winforms datagridview

我在DataGridView中有一列如此:

private System.Windows.Forms.DataGridViewTextBoxColumn TaskOrderAmountColumn;

this.TaskOrderAmountColumn.DataPropertyName = "Amount";
this.TaskOrderAmountColumn.HeaderText = "Task Order Amount";
this.TaskOrderAmountColumn.Name = "TaskOrderAmountColumn";
this.TaskOrderAmountColumn.ReadOnly = true;
this.TaskOrderAmountColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; 

它显示如下: enter image description here

列的宽度太大。所以我添加这一行:

this.TaskOrderAmountColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.ColumnHeader;

这会减少列的宽度,但会产生导致列标题转到2行的副作用:

enter image description here

如何减小列的宽度并将行标题保持在1行?

solution here具有相同的效果。这并不奇怪,因为问题的根本原因似乎是未从文本“任务订单金额”正确计算宽度。但是,通过更改一行:

c.Width = w + 25; 

即,在计算中添加一点,它会将标题行显示为单行。

1 个答案:

答案 0 :(得分:1)

要将列的AutoSizeMode设置为ColumnHeader时要使用单行列标题,请将DataGridView的{​​{1}}属性设置为与AutoSize不同的值,示例使用设计器或使用代码将其设置为DisableResizing

另请注意,ColumnHeadersHeight属性不应高于单行文本(默认情况下不高,除非您更改高度或列标题字体)。