我在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;
列的宽度太大。所以我添加这一行:
this.TaskOrderAmountColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.ColumnHeader;
这会减少列的宽度,但会产生导致列标题转到2行的副作用:
如何减小列的宽度并将行标题保持在1行?
solution here具有相同的效果。这并不奇怪,因为问题的根本原因似乎是未从文本“任务订单金额”正确计算宽度。但是,通过更改一行:
c.Width = w + 25;
即,在计算中添加一点,它会将标题行显示为单行。
答案 0 :(得分:1)
要将列的AutoSizeMode
设置为ColumnHeader
时要使用单行列标题,请将DataGridView
的{{1}}属性设置为与AutoSize
不同的值,示例使用设计器或使用代码将其设置为DisableResizing
。
另请注意,ColumnHeadersHeight
属性不应高于单行文本(默认情况下不高,除非您更改高度或列标题字体)。