【发布时间】:2012-10-09 16:43:09
【问题描述】:
我正在尝试更改 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() 方法在Form 的构造函数中被调用。列已创建,但其标题的更改不适用。
我认为这是因为我的循环中存在缺陷foreach (DataGridViewHeaderCell header in dgvBreakDowns.Rows)? 我不确定。我尝试将其更改为dgvBreakDowns.Columns,但我得到了一个 InvalidCastException。如何选择标题单元格以应用这些更改?
我还有一个小问题。当我运行程序时,它看起来像这样。
请注意,默认情况下选择第一个单元格,因此它显示为蓝色。当然它不会影响任何东西,但它看起来有点丑陋和不整洁。可以阻止它像那样选择单元格吗?
【问题讨论】:
-
奇怪的是,您可以像这样将
DataGridViewRow拆箱为DataGridViewHeaderCell。我认为您的代码有效的唯一原因是Rows集合是空的...
标签: c# datagridview