为什么Invalidate()应该在控件之外调用然后它可以工作?

时间:2010-07-28 00:12:29

标签: c# winforms linq-to-sql datasource invalidation

我正在使用C#+ winforms来开发软件 我有一个UserControl,其中包含几个DataGridView

datagridview1.datasource = from p in dc.doctor select p;

我使用linq to sql用dataSource填充dataGridView,因为我需要刷新数据源来更新记录,所以我创建了一个新的dataContext并再次分配数据源。

datagridview1.datasource = from p in dc.doctor select p;  

起初我发现,虽然我重置了数据源,但是datagridview仍然无法刷新,有人告诉我应该在datagridview上调用invalidate函数,我试过了。在某种程度上,它的工作原理。 但是,如果我在UserControl的类中调用了Invalidate,它将无法工作 如果我在UserControl的类上创建一个公共函数,然后使用userControl.refreshRecord()调用它,那么它可以工作。

有人能指出我错过了什么吗?当有人呼叫无效时,它何时才能正常工作? 提前谢谢!

2 个答案:

答案 0 :(得分:0)

当控件完成所有其他内容(例如数据加载......)时,工作无效。

答案 1 :(得分:-1)

为datagridview调用dgv.Invalidate()方法。