Изменение выравнивания текста заголовков DataGridView и размер шрифта
Я пытаюсь изменить выравнивание текста и размер шрифта DataGridView. Все столбцы создаются программно во время выполнения. Вот код..
private void LoadData()
{
dgvBreakDowns.ColumnCount = 5;
dgvBreakDowns.Columns[0].Name = "Breakdown No";
dgvBreakDowns.Columns[1].Name = "Breakdown Type";
dgvBreakDowns.Columns[2].Name = "Machine Type";
dgvBreakDowns.Columns[3].Name = "Date";
dgvBreakDowns.Columns[4].Name = "Completed";
dgvBreakDowns.Columns[4].Visible = false;
foreach (DataGridViewHeaderCell header in dgvBreakDowns.Rows)
{
header.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
header.Style.Font = new Font("Arial", 12F, FontStyle.Bold, GraphicsUnit.Pixel);
}
}
Этот метод LoadData()
вызывается в конструкторе формы. Столбцы создаются, но их изменения Заголовков не применяются.
Я думаю, что из-за ошибки в моей петле foreach (DataGridViewHeaderCell header in dgvBreakDowns.Rows)?
Я не уверен. Я попытался изменить его на dgvBreakDowns.Columns
, и я получаю InvalidCastException. Как я могу выбрать ячейки заголовка для применения этих изменений?
У меня другая проблема. Когда я запускаю программу, она выглядит так.
![enter image description here]()
Обратите внимание, что первая ячейка выбрана по умолчанию, поэтому она отображается синим цветом. Конечно, это ничего не влияет, но это выглядит несколько уродливым и неопрятным. Можно ли остановить его от выбора ячейки?
Ответы
Ответ 1
Попробуйте (обратите внимание, что я использую столбцы здесь, а не строки):
foreach(DataGridViewColumn col in dgvBreakDowns.Columns)
{
col.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
col.HeaderCell.Style.Font = new Font("Arial", 12F, FontStyle.Bold, GraphicsUnit.Pixel);
}
Что касается отмены выбора ячейки, попробуйте dgvBreakDowns.ClearSelection()
Ответ 2
или просто попробуйте следующее:
dgvBreakDowns.Columns[4].HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter;