C# winform DataGridView刷新慢

写了一个程序使用开发工具winform,在使用DataGridView控件,在我的机子上面运行一点问题都没得,不管数据有多少行,都不行影响性能,在同事的机子上运行(Amd Athlon 5400+,GF9500的独显) ,如果数据的行数太多,已经到了满幕后,就会出现一个滚动条,拖动滚动条时感觉数据刷新很慢,并且数据一直在从上往下闪屏,这时候如果再来操作这些数据,基本上是机子就痴呆了,程序运行起来慢得要死,打开任务管理器,CPU使用率直接50%以上,我本人的机子比同事的机子配置要差得多,都不会出现这种情况,但是不知道为什么样会出现这样子的一种情况。
问题描述完了,请高人指点。
全都是些瓜麻批。。

你们的硬件环境不同,操作系统环境可能也有所不同。比如他在运行你的程序的同时是否有很多后台程序在运行?如果操作系统中同时运行的线程过多,就会造成类似情况。

另外,你的CPU是否是Intel的,有时候某些AMD的CPU的计算能力有点问题。

一般编写的WinForm程序与显卡关系不大,他们都是采用CPU来计算界面,所以消耗CPU比较大,如果CPU的计算能力不同,就会造成刷屏的情况。WinForm与WPF不同,WPF是借用显卡的处理器,将界面重画工作都交给了显卡,解放了CPU的处理。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-07-29
你可以删掉DataGridView重做一次试试:
1.删除掉现有的DataGridView
2.拖一个新的DataGridView,不改变任何属性,不手动创建列.
3.直接把数据绑定到DataGridView,看速度是否还是很慢.
若这样还很慢,就是你的电脑问题

如果上面的方法还不能解决,
那你就用分页的方式来显示吧...
第2个回答  2010-07-18
分屏撒,你整这么多干什么
第3个回答  2013-03-22
这个,我知道你是瓷锤!

C# winform DataGridView刷新慢
你们的硬件环境不同,操作系统环境可能也有所不同。比如他在运行你的程序的同时是否有很多后台程序在运行?如果操作系统中同时运行的线程过多,就会造成类似情况。另外,你的CPU是否是Intel的,有时候某些AMD的CPU的计算能力有点问题。一般编写的WinForm程序与显卡关系不大,他们都是采用CPU来计算界面,所以...

c#进行winform应用开发,如何能加快窗口控件的加载速度,甚
在C#进行WinForm应用开发时,加速窗口控件加载速度是关键。通常情况下,激活双缓存机制能解决大部分界面性能问题。具体操作如下:在创建窗口的建构过程中,只需调用特定过程即可实现双缓存功能。对于那些频繁刷新的控件,如DataGridView、ListView、TreeView等数据容器,建议继承并重写用户控件,确保在用户控件内部...

C#高手请出招 Treeview Datagridview问题
如果是数据查询比较慢,你可以在第一次载入页面的时候把所有的数据都放到ViewState中,然后每次在点节点的时候再从这个ViewState中取数据.C#是顺序执行,但是在显示label的同时就已经去执行数据库了(因为那里执行的很快),如果想要这样的目的,在vs2005以上的版本可以用updatepanel这个控件来做.顺便说一句, 那个...

C# 做Winform 程序是,使用DataGridView控件以后,在选择行的时候为什么...
因为你使用的是控件,在.NET中控件即代表了封装了一些代码的模块,在你选择行的时候之所以会“卡”,是因为在执行内部程序 优化的话,你的数据绑定采用代码来绑定,不要采用它自带的数据绑定

C# dataGridView1.DataSource 执行此语句太慢
这是系统控件的通病 效率很低 自己写个翻页算法就行,一页显示多少条就只读多少条,这样差不多能降到0.5秒左右

C# datagridview 不刷新数据
你的da的定义在哪?感觉有可能是重复用同一个数据库连接造成数据未刷新,修改ExceDt函数,使其每次重新初始化连接试试 单步调试与否理论上不应该是截然相反的结果,可以留联系瞧瞧。

C# winform 中A窗口中有个datagridview,怎样在B窗口中刷新A窗口中的gi...
1、在A窗口中定一个公共的操作函数来操作自己的girdview。B窗口中就可以调用A窗口的这个函数。2、直接吧girdview定义为公共控件。这样B窗口就可以直接操作girdview

c#中datagridview控件更新问题
一般我都自己写数据库连接方法,好控制。你看下load里面那一段关于数据库取数的,记得调用一下那段话就OK了

C#中用timer控件定时查询数据库,刷新dataGridView1,不定时的出错_百度...
你上面还设置了不检查跨线程,也许隐藏了出错的真正原因 也可以开后台线程,invoke刷新界面 还有设置datasource之前不妨先设置为null 如果业务逻辑不需要修改数据,那设置为只读最好 设置CausesValidation = false

C# 如何刷新 父窗口的 datagridview。我做了一个增加窗口,增加成功后关 ...
就说明数据做出了修改。Form1 Form01=new Form1();Form01.ShowDialog();if (Form01.EditOk){ Edt = Form01.EditValue.ToString();\/\/这里传入Form01中的变量到主窗口。if (更新数据的函数,如果成功则){ 刷新datagriview } else { MessageBox.Show("修改数据失败");} } ...

相似回答