【问题标题】:Why doesn't cell text alignment doesn't work in DataGridView in C#?为什么单元格文本对齐在 C# 的 DataGridView 中不起作用?
【发布时间】:2016-10-05 11:12:44
【问题描述】:

我想做一个输入框,我有一个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;
        }

结果:

那么我怎样才能对标题和单元格进行对齐呢?

【问题讨论】:

标签: c# winforms datagridview alignment


【解决方案1】:

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

问题在于排序,因为当它启用时,DataGrid 为排序字形保留了一些位置。因此,如果您禁用排序,它应该可以按预期工作:

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

将此添加为答案,以便将来到达这里的每个人都可以轻松找到解决问题的方法。

【讨论】:

    【解决方案2】:

    上面的代码只是将每列的单元格居中,而不是每列的标题。

    尝试在“for”中添加这一行:

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

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

    【讨论】:

    • 抱歉,这个解决方案对我不起作用。添加“NotSortable”确实有效。
    • 是的,我明白了。但是您仍然错过了标题单元格的行:)
    猜你喜欢
    • 2012-04-06
    • 1970-01-01
    • 2013-03-04
    • 2016-02-13
    • 2021-06-29
    • 2011-07-23
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多