2013-07-01 2 views
2

У меня есть datagridiview, который динамически связан с datatable. Я хотел бы выровнять некоторые столбцы в заголовке с выравниванием по правому краю.Вправо выровнять столбец в datagridview не работает

Я пробовал эту настройку для datagridview как для сотового телефона, так и для наушников. Для стиля ячейки он отображается правильно, но для заголовка это не так:

enter image description here

Код я использовал:

this.dataGridView1.Columns["Quantity"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; 
this.dataGridView1.Columns["UnitPrice"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; 

Может кто-нибудь мне помочь?

ответ

9

Код 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/После загрузки формы:

enter image description here

2/Разрешить сортировку, нажав на флажок:

enter image description here

3/После нажатия кнопки c olumn:

enter image description here

-1
foreach (DataGridViewColumn col in dataGridView2.Columns){ 
    col.SortMode = DataGridViewColumnSortMode.NotSortable; // This first set it work 
    col.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; 
    col.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; 
} 
1

Для установленного выравнивать в заголовке столбца или содержания клеток вы можете использовать IDE и открыть это свойство маски DataGridView.

Установить содержимое ячейки выравнивания в Colunm собственности или установить Алинг строки заголовка в RowHeaderDefaultCellStyle

enter image description here

Смежные вопросы