DataGridview更新和Datagridview刷新

Sanjeewa.nibm

会员
已加入
2014年10月8日
留言内容
5
编程经验
3-5
那会是什么 DataGridview.Update()和Datagridview.Refresh()的异同 方法

什么 是使用DataGridview.Update()和Datagridview.Refresh()的地方

我有点困惑
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,501
地点
悉尼,澳大利亚
编程经验
10+
它与DataGridView类没有特定关系。 Update和Refresh是Control类的方法,因此所有控件都具有这些方法。要了解它们的作用,还需要将Invalidate方法和Paint事件也放入混合中。

使用Windows窗体中的GDI +,控件经常在屏幕上重新绘制。每次都会引发一个Paint事件。当控件的状态更改时,您将不会真正看到更改,直到重新绘制控件为止。

屏幕上实际绘制的像素很慢,这就是为什么有时会看到闪烁的原因。出于这个原因,每次都最好重新绘制尽可能小的区域。 Invalidate方法告诉控件需要重绘哪些区域。如果调用不带参数的Invalidate,则将在下一个Paint事件上重新绘制整个控制表面。如果使用参数调用它,则仅会重画指定的区域。您可以为每个Paint事件多次调用Invalidate来重新绘制复合区域。 Update方法强制所有无效区域立即重新粉刷。 Refresh方法仅调用不带参数的Invalidate和Update。

因此,Invalidate指定了在下一个Paint事件上要重画的区域,Update立即重画了所有无效区域,而Refresh立即重画了整个控件。

现在,为什么您认为需要在DataGridView上调用它?通常,您只需要在制作自己的GDI +图形时就可以了,即使这样也不一定。
 

Sanjeewa.nibm

会员
已加入
2014年10月8日
留言内容
5
编程经验
3-5
我指的是在设置数据源之后调用datagridview1.update()和datagrdview1.refresh()方法,什么是上述2种方法的最佳调用顺序,正确的方法是什么

数据网格视图1.DataSource =新列表....
数据网格视图1.Refresh();

要么

数据网格视图1.DataSource =新列表....
数据网格视图1.Update();

否则何时使用datagridview1.Update()或datagridview1.Refresh();

是什么 刷新和更新方法调用背后的基础理论, 因为它是 有点混乱
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,501
地点
悉尼,澳大利亚
编程经验
10+
我已经解释了它们的作用。在那种情况下,您为什么需要致电?我会自己回答这个问题:没有理由打电话给他们。只需将数据绑定到网格即可。
 

图马汤加

会员
已加入
2014年8月30日
留言内容
6
编程经验
3-5
刷新将重新绘制整个数据网格

更新将仅重画无效的零件

两者都不与绑定数据或数据源相关(刷新不会从源中重新加载数据,更新不会将更改后的数据保存到源中)

关于这两种方法的所有其他信息,请阅读jmcilhinney的答案。它确切地解释了这些方法的作用。

还有它们的用法... U不需要调用一个或另一个(除非您禁用了控件的事件处理)
 

rudalboy09

会员
已加入
2014年11月27日
留言内容
15
编程经验
1-3
我同意图马。
如果您的应用程序很小,那么没什么大不了的。但是,如果您的应用程序很大,并且流量网络很大,刷新数据就会滞后。
考虑一下。谢谢
 
最佳 底部