winforms - 在 Winforms 中右对齐 DataGridView 列标题

标签 winforms datagridview

我在 DataGridView winforms 控件中有一个名为“Quote Price”的列。我可以将没有空格(例如“单位”)的列右对齐,但是我无法将列标题与名为“报价”的列名称右对齐。我尝试使用 TopRight、MiddleRight 和 BottomRight,但没有成功。

SelectedAdditionalCost.Columns["Quote Price"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; // Doesn't want to right align
SelectedAdditionalCost.Columns["Quote Price"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; // column contents No worries, right aligns.

我确信我正在做一些非常愚蠢的事情,但是,我无法让它工作。

最佳答案

当我写下面的内容时,我意识到可能存在问题 - DataGridView 列的名称不能包含空格 - 您正在通过标题文本引用列集合,而不是列名称。不过,当我尝试运行示例中的代码时,我遇到了运行时错误(空引用异常)。

无论如何,除此之外:

您的代码非常适合我,我在我的一个 datagridview 测试项目(在构造函数中)中实现了以下内容,并且标题文本右对齐:

dataGridView.Columns[1].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
dataGridView.Columns[2].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;

由于您提到了标题文本上的空格,因此第 2 列的文本中包含一个空格。

我提到的一件事是,当排序字形阻止标题文本完全与单元格边距对齐时,标题文本可能会出现不正确对齐的情况。

看看这是否有什么不同:

dataGridView.Columns[1].SortMode = DataGridViewColumnSortMode.NotSortable;

关于winforms - 在 Winforms 中右对齐 DataGridView 列标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1085816/

相关文章:

c# - 如何更改应用程序中每个控件的属性

c# - 如何让 Windows 窗体应用程序与类(class)一起工作?

c# - MVP,Winforms - 事件处理程序或委托(delegate)

c# - 通过 SQL Datagridview 的文本框过滤器 - 显示太多列(重复列)

c# - DataGridView 的总单元格数

c# - 在 Release模式下没有获取当前工作目录?

c# - 在 .NET 7 和 WinForms 应用程序中使用 SqlDependency

c# - 如何设置行的高度以自动调整大小以适合内容

c# - Datagridview 上下文菜单总是在 hittest 中显示 -1

C# Datagridview 最后一个索引越界