DataGridViewAutoSizeColumnMode.ColumnHeader устанавливает заголовок строки на 2 строки - PullRequest
0 голосов
/ 11 мая 2018

У меня есть столбец в 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 строке?

Решение здесь имеет тот же эффект. Это неудивительно, поскольку коренная причина проблемы, по-видимому, заключается в том, что ширина вычисляется неправильно из текста «Сумма заказа задачи». Однако, изменив одну строку:

c.Width = w + 25; 

Т.е., добавив немного к вычисленному значению, он отображает строку заголовка в виде одной строки.

1 Ответ

0 голосов
/ 11 мая 2018

Чтобы заголовки столбцов были однострочными при установке AutoSizeMode для столбца на ColumnHeader, установите для свойства ColumnHeadersHeightSizeMode для DataGridView значение, отличное от AutoSize, например, установите его наDisableResizing используя конструктор или используя код.

Также имейте в виду, что свойство ColumnHeadersHeight не должно быть выше, чем одна строка текста (которая по умолчанию не выше, если вы не измените высоту или шрифт заголовка столбца).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...