【问题标题】:How to refresh DataGridView cells style如何刷新 DataGridView 单元格样式
【发布时间】:2010-10-18 21:46:54
【问题描述】:

我在包含上述 DataGridView (dgvStatsTable) 的 Windows 窗体上有这段简单的代码:

    public void LoadStatsTable(DataTable statsTable)
    {
        dgvStatsTable.DataSource = statsTable;

        var smallFont = new Font(dgvStatsTable.Font.FontFamily, dgvStatsTable.Font.Size * 0.67f);
        dgvStatsTable.Rows[0].Cells[0].Style.Font = smallFont;
        dgvStatsTable.InvalidateCell(0, 0);

        //dgvStatsTable.Invalidate();
        dgvStatsTable.Refresh();
    }

调用该函数后,我的 DataGridView 将包含要查看的正确数据。 但是,我想要的样式更改没有显示(右上角的第一个单元格必须有较小的文本)。

为什么?

是不是因为表设置为DataSource而不是建行列?

谢谢!

【问题讨论】:

  • 您是否检查了标题行的右上角我认为行 [0] 是标题行...而单元格 [0] 是左上角...
  • 谢谢,我也试过 Rows[1].Cells[1] 但所有单元格的字体大小仍然相同
  • 嗯,我正在研究它,同时你可以看看这个,如果你还没有,它可能会有所帮助。 msdn.microsoft.com/en-us/library/1yef90x0.aspx
  • 另外,这里是关于字体属性msdn.microsoft.com/en-us/library/…的文档
  • 嘿,谢谢!我检查了您的文章并按照他们在以下部分中的建议进行了操作:动态设置样式。我在 DataGridView.CellFormatting 中实现了逻辑,现在它可以工作了。谢谢你:)

标签: c# winforms datagridview


【解决方案1】:

问题的解决方案是为 DataGridView.CellFormatting 事件编写一个处理程序

在动态设置样式部分的this MSDN article 中找到。

【讨论】:

    【解决方案2】:

    这是来自 MSDN 网络的一个非常好的答案,看来为了获得更大的控制权,您需要覆盖一些功能。

    http://msdn.microsoft.com/en-us/library/7fb61s43(VS.80).aspx

    【讨论】:

      猜你喜欢
      • 2013-01-13
      • 2012-08-04
      • 2011-12-25
      • 2013-08-25
      • 1970-01-01
      • 1970-01-01
      • 2021-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多