【发布时间】:2011-07-10 23:03:39
【问题描述】:
如何右对齐 DataGridView 列中的文本?我正在编写一个 .NET WinForms 应用程序。
【问题讨论】:
标签: .net winforms datagridview datagridviewcolumn
如何右对齐 DataGridView 列中的文本?我正在编写一个 .NET WinForms 应用程序。
【问题讨论】:
标签: .net winforms datagridview datagridviewcolumn
this.dataGridView1.Columns["CustomerName"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
【讨论】:
this.dataGridView1.Columns["CustomerName"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
我知道这是旧的,但对于那些浏览这个问题的人,MUG4N 的答案将对齐使用相同默认单元格样式的所有列。我没有使用 autogeneratecolumns,所以这是不可接受的。相反,我使用了:
e.Column.DefaultCellStyle = new DataGridViewCellStyle(e.Column.DefaultCellStyle);
e.Column.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
在这种情况下,e 来自:
Grd_ColumnAdded(object sender, DataGridViewColumnEventArgs e)
【讨论】:
您可以通过 Foreach 循环使用这个简单的代码一次编辑所有列
foreach (DataGridViewColumn item in datagridview1.Columns)
{
item.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
}
【讨论】:
<DataGridTextColumn Header="Quantity" Binding="{Binding Quantity}" >
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="HorizontalAlignment" Value="Right" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
【讨论】:
当我们处理对齐和配置时,使用 (C#)匿名类型可以减少重复性任务。更容易阅读和高级操作可以在一个地方进行编辑。就像在这个datagridview dg 配置中
foreach (var conf in new [] {
new { Col = 0, WidthPercent = 40, Align = DataGridViewContentAlignment.MiddleCenter } ,
new { Col = 1, WidthPercent = 30, Align = DataGridViewContentAlignment.MiddleCenter } ,
new { Col = 2, WidthPercent = 30, Align = DataGridViewContentAlignment.MiddleCenter }
})
{
dg.Columns[conf.Col].Width = (int)(dg.Width * conf.WidthPercent/100);
dg.Columns[conf.Col].DefaultCellStyle.Alignment = conf.Align;
}
【讨论】:
DataGridViewColumn column0 = dataGridViewGroup.Columns[0];
DataGridViewColumn column1 = dataGridViewGroup.Columns[1];
column1.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
column1.Width = 120;
【讨论】: