c# - 更改 DataGridView 标题单元格的文本对齐方式和字体大小

标签 c# datagridview

我正在尝试更改 DataGridView 的文本对齐方式和字体大小。所有列都是在运行时以编程方式创建的。这是代码..

private void LoadData()
{
    dgvBreakDowns.ColumnCount = 5;
    dgvBreakDowns.Columns[0].Name = "Breakdown No";
    dgvBreakDowns.Columns[1].Name = "Breakdown Type";
    dgvBreakDowns.Columns[2].Name = "Machine Type";
    dgvBreakDowns.Columns[3].Name = "Date";
    dgvBreakDowns.Columns[4].Name = "Completed";

    dgvBreakDowns.Columns[4].Visible = false;

    foreach (DataGridViewHeaderCell header in dgvBreakDowns.Rows)
    {
        header.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
        header.Style.Font = new Font("Arial", 12F, FontStyle.Bold, GraphicsUnit.Pixel);
    }
}

LoadData() 方法在窗体的构造函数中调用。列已创建,但其标题的更改不适用。 我认为这是因为我的循环 foreach(dgvBreakDowns.Rows 中的 DataGridViewHeaderCell header )中存在缺陷? 我不确定。我尝试将其更改为 dgvBreakDowns.Columns,但我收到了 InvalidCastException。如何选择标题单元格以应用这些更改?

我还有一个小问题。当我运行该程序时,它看起来像这样。

enter image description here

请注意,默认情况下第一个单元格处于选中状态,因此它显示为蓝色。当然它不会影响任何东西,但它看起来有点丑陋和不整洁。有可能阻止它像那样选择 Cell 吗?

最佳答案

试试这个(注意我在这里使用列而不是行):

foreach(DataGridViewColumn col in dgvBreakDowns.Columns)
{
    col.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
    col.HeaderCell.Style.Font = new Font("Arial", 12F, FontStyle.Bold, GraphicsUnit.Pixel);
}

至于取消选择单元格,请尝试 dgvBreakDowns.ClearSelection()

关于c# - 更改 DataGridView 标题单元格的文本对齐方式和字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12967957/

相关文章:

c# - 询问一行的执行

c# - 访问数据 GridView 中的对象

.net - DataGridView 单元格中托管的组合框控件可以要求结束编辑吗?

c# - 如何减少和清除内存泄漏?

c# - 如何替换/覆盖同一命名空间中的类

c# - 在 .net 中获取 imap 未读电子邮件计数,无需臃肿的第 3 方库

c# - ASP .NET Core 授权处理程序 : Get single failing requirement

c# - NPGSQL with .netCore 如何登录到模式而不仅仅是数据库

mysql - DataGridView选择多行,检查每一行

c# - 数据网格中的更新值在带有外键的表中给出错误