【问题标题】:Does DataGridView CellFormatting execute whenever Form & Dgv have focus?每当 Form 和 Dgv 获得焦点时,DataGridView CellFormatting 是否会执行?
【发布时间】:2016-07-01 14:05:11
【问题描述】:

我假设DataGridView.CellFormattingForm 具有焦点的任何时候都会执行,因为每当我从VS2010 切换到实际的Form 时,执行会再次在该event handler 内的断点处停止。这是正确的吗?

如果是这样,有没有办法避免这种情况?也许我可以在事件处理程序中添加一个条件?

谢谢。

【问题讨论】:

  • 我怀疑你最终会花费更多的逻辑成本,而不仅仅是让代码首先执行。

标签: c# winforms visual-studio-2010 datagridview


【解决方案1】:

CellFormatting 事件旨在在单元格的内容需要格式化以进行显示时发生。事实上,每次绘制每个单元格时都会发生该事件。

您可以使用此事件来提供额外的格式,例如将单元格的值转换为更易读或更友好的文本,或者动态地提供单元格格式,例如颜色或背景色。

只需在事件处理程序中对值进行合理的处理,避免事件中的耗时任务。

更多信息请阅读CellFormatting文档的备注部分。

【讨论】:

  • 我也这么认为。如果您还记得this question,其目的是在底层数据表更改时更新 DGV。
  • CellFormatting 将数据行添加到DGV,但似乎在datatable 更改时无法引发此事件。
  • 我目前无权访问 VS。但我想调用网格的无效或刷新方法会引发事件。顺便说一句,您不要在此处添加行,而是提供格式化的值。
  • @rbhatup 顺便说一句,如果您在将答案标记为已接受时投票给答案,那就太好了。这是合理的和recommended
  • 当然。我不知道你可以接受也可以投票。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多