我想Visible属性设置后,会马上调用refresh,所以你一共刷新800次窗体,那就会很慢了。我还没确定,让我查一查msdn,再想想办法。

解决方案 »

  1.   

    Well,我错了,改变pictureBox的Visible并不刷新窗体,至少不会调用Form1_Paint。另外我觉得速度还是合理的嘛,毕竟有800个picturebox。
      

  2.   

    既然所有的picturebox一起可见或不可见,不如把它们放在一个panel里面,然后设置panel的visible属性。
      

  3.   

    我的本意不是这样的。我需要很快的将所有的picturebox隐藏,然后将个别的picturebox显示出来。
      

  4.   

    你不要在一开始LOAD就开始循环,那样当然慢了。
      

  5.   

    我想这不好解决,800个PictureBox占用的资源本来就很多,可以考虑用别的方法以达到相同的功能。
      

  6.   

    “我的本意不是这样的。我需要很快的将所有的picturebox隐藏,然后将个别的picturebox显示出来。”
    如果有规律的话,可否采用制定规则,然后分组的方法?
      

  7.   

    你不需要一开始就将所有的资源取出来啊,等真正需要的时候再Load
      

  8.   

    我以前用VB做了一个软件!
    现在想学习一下C#,所以将以前的Vb代码翻成C#代码
    我总觉得C#的速度不至于这么慢啊!速度完全不如VB.唉!有点失望的感觉
      

  9.   

    怎样才能使得Visible属性设置后,不会refresh,当所有的Visible改变后再刷新
      

  10.   

    创建这么多picturebox, 总觉得这个方法有点不妥。如果一次不要求显示所有的picturebox, 是不是可以用其它的方法,  就象excel,它的一个sheet也不可能创建65536*(9*26)个cell
      

  11.   

    其实我只需要6*18个picturebox,不过也是速度上的问题,我只是想大家看的明显些,就使用800个。还有一点就是,我会在窗体上使用背景图片,这样速度问题就更加的恶化。虽然,我可以画出来。但是画出来的不是控件,每个画出来的“picturebox”写事件就麻烦些。所以,请大家帮我想一下办法.
      

  12.   

    我也遇到这样的情况,我自己试一试做了ACDSee,结果慢的xp就象死机一样!
    晕啊
      

  13.   

    别用C#写,或者换P4 3.2GHz +1G DDR 。呵呵。还是不要用P4了,用Athlon64吧。
      

  14.   

    上面说得是开玩笑,不过C#的确占用资源比较多,是不是先load 5×5个pictureBox,一屏一屏的显示?或者将所有的图片全部转化为缩略图,再放到pictureBox里,缩略图占内存少些。