none
WinForm中DataGridView的虚模式(Virtual Mode=true)填充数据引发的问题,填充了所有数据??? RRS feed

  • 问题

  • WinForm中DataGridView的虚模式(Virtual Mode=true)填充数据引发的问题,却填充了所有数据!

    我的数据源在一个List<object>对象里,List<object>有几万数据量。

    现在出现了 CellValueNeeded(object sender, DataGridViewCellValueEventArgs e) 这个事件被调用几万次的现象。原则上不因该只是填充当前DataGridView所显示的行吗???

    求解,谢谢大家!


    欢迎交流指教 MSN:mangonic@hotmail.com

    2013年6月3日 4:07

全部回复

  • WinForm中DataGridView的虚模式(Virtual Mode=true)填充数据引发的问题,却填充了所有数据!

    我的数据源在一个List<object>对象里,List<object>有几万数据量。

    现在出现了 CellValueNeeded(object sender, DataGridViewCellValueEventArgs e) 这个事件被调用几万次的现象。原则上不因该只是填充当前DataGridView所显示的行吗???

    求解,谢谢大家!


    欢迎交流指教 MSN:mangonic@hotmail.com

    2013年6月3日 4:08
  • WinForm中DataGridView的虚模式(Virtual Mode=true)填充数据引发的问题,却填充了所有数据!

    我的数据源在一个List<object>对象里,List<object>有几万数据量。

    现在出现了 CellValueNeeded(object sender, DataGridViewCellValueEventArgs e) 这个事件被调用几万次的现象。原则上不因该只是填充当前DataGridView所显示的行吗???

    求解,谢谢大家!


    欢迎交流指教 MSN:mangonic@hotmail.com

    2013年6月3日 4:09
  • 不知道你看到MSDN关于CellValueNeeded事件有这样一句话:

    添加用户指定的值的自定义数据存储区,处理 CellValuePushed 事件。

    意思你在实现了CellValueNeeded事件把指定值到自定义数据存储区时,还需要处理CellValuePushed事件,关于DataGridView的虚模式的使用你可以参考下面两篇文章,上面都详细的步骤和代码:

    演练:在 Windows 窗体 DataGridView 控件中实现虚拟模式

    如何:在 Windows 窗体 DataGridView 控件中实现虚拟模式

    相信上面这些可以帮助你解决你的问题


    If my post is helpful,please help to vote as helpful, if my post solve your question, please help to make it as answer. my sample

    2013年6月3日 5:08
  • 不知道你看到MSDN关于CellValueNeeded事件有这样一句话:

    添加用户指定的值的自定义数据存储区,处理 CellValuePushed 事件。

    意思你在实现了CellValueNeeded事件把指定值到自定义数据存储区时,还需要处理CellValuePushed事件,关于DataGridView的虚模式的使用你可以参考下面两篇文章,上面都详细的步骤和代码:

    演练:在 Windows 窗体 DataGridView 控件中实现虚拟模式

    如何:在 Windows 窗体 DataGridView 控件中实现虚拟模式



    If my post is helpful,please help to vote as helpful, if my post solve your question, please help to make it as answer. my sample

    2013年6月3日 5:10
  • 我以前做过一个小示例,我当是根本没有 CellValuePushed事件。

    100万的数据量,在填充时也只填充10几行数据。很正常。

    但是不知道现在是什么原因? 会不会与我的DataGridView的其他属性设置有关?


    欢迎交流指教 MSN:mangonic@hotmail.com

    2013年6月3日 6:03
  • 请确定你启用VirtualMode之后,没有给dataGridView的DataSource赋值。

    If you think one reply solves your problem, please mark it as An Answer, if you think someone's reply helps you, please mark it as a Proposed Answer

    Help by clicking:
    Click here to donate your rice to the poor
    Click to Donate
    Click to feed Dogs & Cats


    Found any spamming-senders? Please report at: Spam Report

    2013年6月3日 6:34
    版主
  • 你还是根据我给你的演练链接先参考上面的实现来实现你的需求,然后再去检查你原来的程序问题的,你先去试试

    If my post is helpful,please help to vote as helpful, if my post solve your question, please help to make it as answer. my sample

    2013年6月3日 6:41
  • VirtualMode开启后,就没有DataSource=??? 的事了。我当然没有给DataSource赋值。

    欢迎交流指教 MSN:mangonic@hotmail.com

    2013年6月3日 6:45
  • CellValuePushed事件 是为了回写数据到数据源中。我没有必要。

    欢迎交流指教 MSN:mangonic@hotmail.com

    2013年6月3日 6:46
  • VirtualMode开启后,就没有DataSource=??? 的事了。我当然没有给DataSource赋值。

    欢迎交流指教 MSN:mangonic@hotmail.com

    你给出你CellNeededValue完整代码。

    同时告诉我们你还做了啥操作?


    If you think one reply solves your problem, please mark it as An Answer, if you think someone's reply helps you, please mark it as a Proposed Answer

    Help by clicking:
    Click here to donate your rice to the poor
    Click to Donate
    Click to feed Dogs & Cats


    Found any spamming-senders? Please report at: Spam Report

    2013年6月3日 6:57
    版主
  • 现在的问题是,CellValueNeeded为什么回被调用那么多次?

    欢迎交流指教 MSN:mangonic@hotmail.com

    2013年6月3日 7:10
  • this.dataGridView.Rows.Add();

    this.dataGridView.Rows.AddCopies(0, dataList.Count - 1);

    这两行之后,就开始调用了CellValueNeeded事件,dataList.Count =18000。

    dataList中有十几个属性,分别对应dataGridView的每一列的值.

    CellValueNeeded 却被调用了N多次,原则上只会填充当前所显示的行.


    欢迎交流指教 MSN:mangonic@hotmail.com

    2013年6月3日 7:19
  • 是不是做了其他的操作,比如对列表项排序


    Visual C++ MVP

    2013年6月3日 20:46
    版主