我在winfrom当中父窗中有一个datagridview进行数据绑定,利用事件机制进行刷新父窗体中的数据。在子窗体里面进行触发此事件,来刷新父窗体的数据。现在问题就是:已调用了事件里面的刷新的方法。但是父窗体的datagridview数据并没有进行更新,数据库当中已进行更新过。不知是什么问题。后来进行过调试,只要调试一下,再进入到这个父窗体的时候,父窗体里面的数据已更新过来。如果不进行调试就老是不进行更新。请教了!
我现在这种情况不是没有进入到重新绑定的方法当中去,而且数据已经在数据库当中进行更新过了。就是没有及时地显示在我的父窗体的datagridview控件上,我试过拖动一个父窗体,我以为是皮肤的刷新问题。结果还是不行的。数据在父窗体没有及时的更新过来。必须要在父窗体当中做一个刷新的按钮点击一下,数据就显示出来了。很是奇怪。不明白是什么原因导致的。大家一起来讨论下!
我现在这种情况不是没有进入到重新绑定的方法当中去,而且数据已经在数据库当中进行更新过了。就是没有及时地显示在我的父窗体的datagridview控件上,我试过拖动一个父窗体,我以为是皮肤的刷新问题。结果还是不行的。数据在父窗体没有及时的更新过来。必须要在父窗体当中做一个刷新的按钮点击一下,数据就显示出来了。很是奇怪。不明白是什么原因导致的。大家一起来讨论下!
b.Refresh();这个方法不好用。我觉用窗体的Activated事件行,也好用。
在该时间内,填入重新加载DGV代码在A窗体修改完值以后,只要激活B窗体,B窗体的数据就改过来了不过这种方法又好像不太合适,请大家讨论讨论,到底有什么方法才能跨窗体修改值呢??????
Refresh()方法我试过了。我是放在数据进行重新绑定的那个方法当中。不过还是不行,这位兄弟请问你的Refresh()方法是写在那个方法里面呢,才解决了你的问题啊,
这样也是不行的,现在问题是数据已更新到数据库当中去了。就datagridview的数据源里面也有了最新的数据 (我是通过调试发现的数据源的数据是已更新过来了,)不过就是不会显示最新的数据(即修改后的数据 ) 在页面上来。到现在为止我还没有找到问题的根源在那里,所以一直没法解决这个问题。大家出来讨论一下吧。
我是利用模式化窗体的。问题详细说明如题所示。
A a= (A)Application.OpenForms["A"];
a.UseDB(); // UseDB是你用来显示datagridview数据的方法,在另一个窗体中,
这里A指的便是另一个窗体,也就是说在B窗体中更新了数据,后添加这段代码
a.Activate();
this.Close();
在父窗体A中,把对DataGridView数据绑定的代码写成单独的一个Public方法,如:
Public void dataShow(){...}
并且,在父窗体A中打开子窗体B的语句是:
B b=new B();
b.ShowDialog(this);
在子窗体B中,修改完数据后,显示父窗体的对象,再重新调用一次父窗体中的数据绑定方法。如:
A a=(A)this.Owner;
a.dataShow();