Winforms 更新和 BindingSource 更新

Winforms Update and BindingSource Update

关于 Winforms 更新的一些问题。

1) 如果我更新一个表单,它是否也会更新它的所有子控件? Microsoft 没有说明任何有关子控件的信息。

2) 控件如何失效?假设我有一个文本更改的标签。这是否意味着如果我调用 Form.Update,标签是否会被视为无效,因此它会被更新(我假设如果 Q1 为真,那么这将成立)?或者我是否需要在标签控件上调用 Invalidate 才能获取更新?

3) 我有一个附加到 BindingSource 的 DatagridView。我注意到即使我没有在表单上明确调用 Update,DatagridView 仍会更新 DatagridView(当我附加新行时)。我想知道是否是 Winforms BindingSources 在后台更新网格的情况?

回答您的问题的关键是了解 WinForm Events

有几种不同类型的事件:

回答您的具体问题:

  1. 问:如果我更新一个表单,它是否也会更新它的所有子控件?

    答:不会。仅在需要时更新子控件 - 当发生影响该特定控件的更改时。

  2. 问:控件如何失效?

    答:我想你的意思是"what triggers a control update?"那么答案是"receiving an event that the control is configured to handle."

  3. 问:为什么我的 DatagridView 会自动更新? [Did] Winforms BindingSources 在后台更新网格?

    答:基本上,"Yes".

    查看此处了解更多详情:

建议:

这是一个您可以构建的工作示例,运行 可以更好地理解正在发生的事情 "under the covers":

https://www.codeproject.com/Articles/240221/DataGridView-Event-Sequences