Код works: пространство, которое вы видите справа от заголовка, является «нормальным».
DataGridView
поддерживает сортировку по столбцам. Поэтому каждый заголовок столбца резервирует достаточно места для отображения глифа сортировки (обычно это стрелка).
Если вы хотите, чтобы текст в заголовке столбца был отлично выровненный по правому краю, вам нужно отключить сортировку. Установите для свойства SortMode
для столбца значение NotSortable. Это не позволит зарезервировать пространство для глифа сортировки.
объект урока:
public class FrmTest : Form
{
public FrmTest()
{
InitializeComponent();
this.DataGridView1.Columns[0].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
this.DataGridView1.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
this.DataGridView1.Columns[0].SortMode = DataGridViewColumnSortMode.NotSortable;
}
private void CheckBox1_CheckedChanged(System.Object sender, System.EventArgs e)
{
if (this.CheckBox1.Checked) {
this.DataGridView1.Columns[0].SortMode = DataGridViewColumnSortMode.Automatic;
} else {
this.DataGridView1.Columns[0].SortMode = DataGridViewColumnSortMode.NotSortable;
}
this.DataGridView1.Refresh();
}
}
1/После загрузки формы:
2/Разрешить сортировку, нажав на флажок:
3/После нажатия кнопки c olumn: