在datagridview中右对齐一列无效

在datagridview中右对齐一列无效

问题描述:

我有一个datagridiview,它被动态绑定到datatable。我想将标题中的一些列对齐。在datagridview中右对齐一列无效

对于cellstyle和headercell,我尝试了datagridview这个设置。对于细胞的风格是正确的,但显示的头是不是:

enter image description here

的代码我使用:

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

有人能帮我吗?

代码作品:您在标题文本右侧看到的空间为“正常”。

DataGridView支持按列排序。因此,每个列标题保留足够的空间来显示排序字形(通常是一个箭头)。

如果您希望列标题中的文本为完全对齐,则需要禁用排序。将该列的SortMode属性设置为NotSortable。这将防止为排序字形保留空间。

对象课:

enter image description here

2 /允许通过点击复选框排序:

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

3 /点击c后olumn:

enter image description here

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; 
} 

对于设置在列标题或单元格内容您可以使用IDE,并打开的dataGridView的这种性质掩码对齐。

位于Colunm属性对准单元内容或设定的行标题阿玲在RowHeaderDefaultCellStyle

enter image description here