因为涉及到了两个线程,所以我也说不清楚到底是不是进入死循环了主线程主要就是更新datagridview,包括CellFormatting,包括每次刷新后显示最后一行而不是第一行这样的功能,副线程主要是获取数据,将数据写入dataset,然后调用beginInvoke来更新绑定数据,似乎这个绑定数据以更新,datagridview就自己启动CellFormatting事件了
解决方案 »
- C#的接口Interface到底有什么用?Interface都不实现成员,都只是声明而已。
- 请问这两句话什么意思???????
- 求:人工智能算法
- 有做语音压缩的吗?进来说说
- 为什么vs2003与vs2005中的datagrid控件效率会差这么多(DATAGRIDVIEW也好不到哪里去)
- QQ群〔 15774494 ---项目设计师〕物以类聚,人以群分,你是项目设计师,这儿才是你的好去处
- 用vc++.net能使用智能客户端的updater和offline吗???
- 如何在c#中利用模板生成word,并生成word目录?
- 生成静态页面后 如何更新到索引页上的连接?
- 急问题:OleDbCommand.ExecuteReader()的执行结果总为空?
- 关于序列化的一个匪夷所思的问题
- HashTable的ref问题
别人教了我一个办法,就是在更新datagridview的时候,不要再用bindingsource作为datagridview的datasource了,直接把dataset的表作为datasource,相当于重新画一次datagridview,这样就不会闪了,而且滚动条也不会报错了
用一个public DataTable dt
在backgroundWorker1_DoWork里赋值 dt = getDT(xx);
接着在backgroundWorker1_RunWorkerCompleted 里dataGridView1.DataSource = dt.DefaultView;
然后在你想更新的事件里backgroundWorker1.RunWorkerAsync();你这种情况就是还要定义一个public int CurrentPageIndex,在赋值dt时再作一下处理。