实现功能,主窗体从数据库读取数据,点击主窗体上的添加按钮,弹出一个新的窗体,要在窗体关闭的时候,调用主窗体的Timer空间,使其Start(),继续从数据库获取最新一条数据。
今天做了一天,数据库都更新完了,但是主窗体DataGridView 上的数据就是不更新。
可能出现的问题: 一,我没有数据库,用的泛型作为数据源,泛型出问题了,2,DataGridView 出问题了,3,Timer 控件出问题了。
在网上搜索说控件没有 Refresh,但是仍然无结果。
然后开始调试:List<Order> olist=..... ;DataGridView.DataSource=olist; 最后一步绑定的时候,进入 Order 对象里面,死活不得出来,只有按F5;
问题考虑:为什么DataSource 最后一步的时候,还要多次进入Order 对象,并且运行N次,只有F5 才能终止
下班。。。
回家之后,用一台全新的电脑,重新建了一个最简单的程序,仍然无结果。然后将泛型换成DataSet 仍然无结果,然后将GridView 换成 TextBox 仍然无结果, 看来是Timer控件的问题了。
然后将2个窗体的要做的工作 弄到一个窗体里面去,成功了。。。为什么Timer控件 不能在2个窗体运行吗?奇怪。
最后把 第二个窗体的代码修改了之后,实现了。
Form1 fm=new Form1(); fm.timer1.start();
换成了 Form(Timer _timer) 接收 Form1传递的Timer ,然后 _timer.start();
想不通。。。
Timer是线程吗 ? 线程只能传参数吗 ?不能通过 Form1 fm=new Form1(); fm.timer1.start(); 运行吗 ?
但是不管哪个 方式,程序调试的时候 都没有问题,看不出来任何异常。