Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 右对齐datagridview中的列';行不通_C#_Winforms_Datagridview - Fatal编程技术网

C# 右对齐datagridview中的列';行不通

C# 右对齐datagridview中的列';行不通,c#,winforms,datagridview,C#,Winforms,Datagridview,我有一个datagridiview动态绑定到datatable。我想将标题中的一些列向右对齐 我为cellstyle和headercell的datagridview尝试了此设置。对于单元格样式,显示正确,但对于标题,显示不正确: 我使用的代码是: this.dataGridView1.Columns["Quantity"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; this.dataGridVi

我有一个
datagridiview
动态绑定到
datatable
。我想将标题中的一些列向右对齐

我为cellstyle和headercell的
datagridview
尝试了此设置。对于单元格样式,显示正确,但对于标题,显示不正确:

我使用的代码是:

this.dataGridView1.Columns["Quantity"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
this.dataGridView1.Columns["UnitPrice"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
有人能帮我吗?

代码起作用:您在标题文本右侧看到的空间是“正常”的

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/加载表单后:

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

3/单击列后:

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