C# Winforms更新和BindingSource更新
有关Winforms更新的一些问题 1) 如果我更新表单,它是否也会更新其所有子控件?Microsoft没有声明任何关于子控件的内容 2) 控件如何失效?假设我有一个在文本中改变的标签。这是否意味着如果我调用Form.Update,标签是否会被视为无效,因此它会被更新(我假设如果Q1为真,那么它会保持不变)?或者我需要调用label控件上的Invalidate以获取更新吗C# Winforms更新和BindingSource更新,c#,winforms,bindingsource,C#,Winforms,Bindingsource,有关Winforms更新的一些问题 1) 如果我更新表单,它是否也会更新其所有子控件?Microsoft没有声明任何关于子控件的内容 2) 控件如何失效?假设我有一个在文本中改变的标签。这是否意味着如果我调用Form.Update,标签是否会被视为无效,因此它会被更新(我假设如果Q1为真,那么它会保持不变)?或者我需要调用label控件上的Invalidate以获取更新吗 3) 我有一个连接到BindingSource的DatagridView。我注意到,即使我没有明确地在表单上调用Update
3) 我有一个连接到BindingSource的DatagridView。我注意到,即使我没有明确地在表单上调用Update,DatagridView仍然会更新DatagridView(当我添加新行时)。我想知道Winforms BindingSources是否会在后台更新网格?回答您的问题的关键是理解WinForm 有几种不同类型的感兴趣的事件:
- 等等等等
Control.Update()是对的直接调用(请参见注释)。与数据或BindingSource操作无关。设置标签的文本是对的间接调用。无效(true)使绘制请求排队,包括控件的子项。Control.Refresh()调用
Invalidate(true)
和Update()
,这意味着刷新此句柄及其子项并立即执行。如果您有与控件内容更新相关的特定问题,请发布有关问题的详细信息,以及问题产生的上下文的描述。所以Form.Update和Control.Update的工作原理不同吗?我注意到Form.Update是即时的,而Control.Form不是。我通过更改标签的文本对其进行了测试。@Drogba Form.Update()就是Control.Update()。Form类派生自控件。Update()方法属于控件类。控件表面绘制的时间取决于许多因素。正如在评论中已经提到的,如果你有一个具体的问题,发布关于这个问题的详细信息。