none
datagridview如何加快速度 RRS feed

  • 问题

  • 我在一个数据采集程序的timer.tick里,把采集的数据添加到datagirdview里,每次要有一句datagridview1.rows.add(),然后把数据付给datagridview1,同时为了显示最后新加入的一行,还有一句datagridview1.firstdisplayedscrollrowindex=datagridview1.rowcount-1。可这两句特别耽误时间,如果没有这两句,程序执行很快,能在很短的时间内采集数据,而增加的这两句,我的timer必须设置较大,才能采集过来。

    我只是想把采集的数据以表格显示出来,如何加快显示速度?请教高手。

    2010年9月9日 13:38

答案

全部回复

  • 补充:刚才在网上搜了一下,说用虚拟模式,我还没用过,正在研究。
    2010年9月9日 14:08
  • 你好:

    你是采集数据。然后绑定到datagridview控件里。不知为什么你需要通过添加行来添加数据。如果采集新数据后重新绑定就可以。

    也就是说你把第一次的数据绑定后,还需要存储一份在内存中。以后新添加的数据直接添加到内存。把整个数据重新绑定一次。

    希望对你有所帮助。

    2010年9月10日 5:36
    版主
  • 我从未用过数据绑定,能不能较详细一点介绍。

    我用timer控件每隔0.5秒采集一次数据(每组有3个数据),并把他们显示在datagridview里,因为事先不知道要采集多少,因此每采集一次,就把datagridview增加一行(datagridview1.rows.add()),并把采集的数据付给datagridview(datagridview1.row(i).cells(j).value=data),同时为了能看到当前采集的数据,还需要把最后一行数据显示出来(datagridview1.firstdisplayedscrollrowindex=datagridview1.rowcount-1)。

    我就是这样做的,不会什么数据绑定。

    麻烦你仔细介绍一下。

    2010年9月10日 15:37
  • 你好:

    那你是怎么显示在datagridview控件上的 ?

    // Set up the DataGridView.
    dataGridView1.Dock = DockStyle.Fill;
    
    // Automatically generate the DataGridView columns.
    dataGridView1.AutoGenerateColumns = true;
    
    // Set up the data source.
    bindingSource1.DataSource = GetData("Select * From Products");
    dataGridView1.DataSource = bindingSource1;
    

    http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.datasource.aspx

    你可以将采集到的数据放到一个datatable中。然后绑定到datagridview控件上。

    希望对你有所帮助。

    2010年9月13日 2:46
    版主