为什么单元格文本对齐在C#中的DataGridView中不起作用?

时间:2016-06-05 22:22:21

标签: c# winforms datagridview alignment

我想创建一个输入框,我有一个DataGridView。但它不能对齐标题或单元格的文本内容。

我在运行时创建DataGridView的代码:

DataGridView CreateInputBox(int proc,int mac)
        {
            DataGridView databox = new DataGridView();
            for (int i = 0; i < mac; i++)
            {
                databox.Columns.Add("col" + i, "M" + i);
                databox.Columns[i].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            }
            for (int i = 0; i < proc; i++)
            {
                databox.Rows.Add();
            }
            databox.AutoSize = true;
            databox.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
            return databox;
        }

结果:

enter image description here

那么如何对标题和单元格进行对齐?

2 个答案:

答案 0 :(得分:2)

如果我理解正确,答案就在这里:Right align a column in datagridview doesn't work

问题在于排序,因为当它启用时,DataGrid会为排序标志符号保留一些位置。因此,如果您禁用排序,它应该按预期工作:

this.DataGridView1.Columns[0].SortMode = DataGridViewColumnSortMode.NotSortable;

将此作为答案添加,以便将来到这里的所有人都能轻松找到解决问题的方法。

答案 1 :(得分:-1)

上面的代码只是将单元格置于列的前面,而不是每列的标题。

尝试在“for”中添加此行:

databox.Columns[i].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;

Src:Changing DataGridView Header Cells' Text Alignment And The Font Size