如何在DataGridView列中使文本右对齐?


Answers:


109
this.dataGridView1.Columns["CustomerName"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; 

10
类似地:转到datagridview的Collections属性;单击列;在外观类别下的顶部,将有一个DefaultCellStyle字段;点击“ ...”;CellStyle Builder窗口将弹出,其中包含“对齐”等内容。因此,您可以在表单编辑器中设置属性,而无需使用硬编码。
leetNightshade

2
(到leetNightshade ...)可以将在表单编辑器中设置值视为硬编码。通过在代码中设置值(如在MUG4N提供的解决方案中一样),可以根据数据类型更改对齐方式。例如,如果单元格包含数字数据,则使用右对齐;如果单元格包含文本数据,则使用左对齐。请记住,可以在运行时以编程方式填充网格(例如,如果它们不是数据绑定的)。还可以从配置源读取对齐设置,并在运行时动态设置它们。干杯。
Andrew Jens

7

要在dataGridCell中设置对齐文本,您有两种方法:

设置特定单元格的对齐方式或行的每个单元格的对齐方式。

对于一列转到 Columns->DataGridViewCellStyle

要么

对于每一列,请转到 RowDefaultCellStyle

控制面板与以下相同:

在此处输入图片说明


4

我知道这很旧,但是对于那些正在浏览此问题的人,MUG4N的答案将对齐所有使用相同defaultcellstyle的列。我没有使用autogeneratecolumns,所以这是不可接受的。相反,我使用了:

e.Column.DefaultCellStyle = new DataGridViewCellStyle(e.Column.DefaultCellStyle);
e.Column.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;

在这种情况下e来自:

Grd_ColumnAdded(object sender, DataGridViewColumnEventArgs e)  

0

您可以通过Foreach循环使用此简单代码一次编辑所有列

        foreach (DataGridViewColumn item in datagridview1.Columns)
        {
            item.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
        }

0
<DataGridTextColumn Header="Quantity" Binding="{Binding Quantity}" >
  <DataGridTextColumn.ElementStyle>
    <Style TargetType="{x:Type TextBlock}">
       <Setter Property="HorizontalAlignment" Value="Right" />
    </Style>
  </DataGridTextColumn.ElementStyle>
</DataGridTextColumn>

1
欢迎使用堆栈溢出。在此不建议仅使用代码的答案,因为它们没有解释它如何解决问题。请编辑您的答案以解释代码的作用以及它如何回答问题,以便它对于其他用户以及OP均有用。
FluffyKitten
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.