Код, который вы разместили, находится на правильном пути: вам нужно установить свойство ColumnHeadersDefaultCellStyle
вашего DataGridView
элемента управления.
Однако вам необходимо создать новый DataGridViewCellStyle
классифицируйте и присвойте , что свойству ColumnHeadersDefaultCellStyle
. Вы не можете изменить свойство Alignment
, как показано в примере кода, если вы не назначили класс DataGridViewCellStyle
для этого свойства.
Так, например, следующий код достигает идеально центрированных заголовков столбцов в пустом проекте:
Dim dgvColumnHeaderStyle As New DataGridViewCellStyle()
dgvColumnHeaderStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
myDataGridView.ColumnHeadersDefaultCellStyle = dgvColumnHeaderStyle

В будущем вы можетелегче делать такие вещи от дизайнера.Если вам все еще нужно сделать это самостоятельно с помощью кода, вы можете проверить созданный файл *.Designer.vb
, чтобы увидеть, как это было сделано.
РЕДАКТИРОВАТЬ: Я только сейчас заметилнебольшое смещение, на которое вы ссылаетесь в столбцах - это действительно создает небольшой дополнительный отступ справа от каждого заголовка.Это не ошибка, хотя.Есть гораздо более простое объяснение.
Как и ListView
, DataGridView
поддерживает сортировку по столбцам.Поэтому каждый заголовок столбца резервирует достаточно места для отображения глифа сортировки (обычно стрелки) при вычислении выравнивания по центру.
Если вы хотите, чтобы заголовки столбцов были идеально по центру, выВам нужно будет отключить сортировку. Установите для свойства SortMode
для столбца значение «NonSortable».Это должно препятствовать тому, чтобы пространство было зарезервировано для глифа сортировки всякий раз, когда текст столбца находится по центру или выровнен по правому краю.