假设2位数组的长度为1000,能否让mschart显示其中的100个点。例如:
dim a(10,1000)
'为a()赋值或读取数据,代码略
MSChart1.ChartData = a      '这句的结果是mschart1将显示全部1000个点,而我希望显示其中的100个点例如101-200。

解决方案 »

  1.   

    mschart实在是比较复杂,又没有特别系统详细的说明,总是一点一点地发现和查找答案
      

  2.   

    因为数据量比较大,所以更新数组速度不够。按道理mschart应该可以选择显示数据的一部分。
    另外mschart每次数组变化时legend和focus以后的虚框(已设置为无边框,但选择后有虚框)总要闪一下,能否不闪?
      

  3.   

    另外mschart每次数组变化时legend和focus以后的虚框(已设置为无边框,但选择后有虚框)总要闪一下,能否不闪?能不能先设Visible=false
    待mschart完成后再Visible=True?
      

  4.   

    mschart用数组的话应该有2个基本方法:
    1)不断替换数组内容。数据量大时这样做很慢。
    2)只增加新的数组元素。这样速度快。但是就是不知道怎样只显示数组的一部分。
    所以还是如题的问题。
      

  5.   


    还是闪。应该是有什么属性可以设。还是需要mschart的详细说明啊。
      

  6.   

    定义另一个数组b,用For循环每次从a取100个数据,让MSChart1.ChartData =b
      

  7.   


    for循环是最慢的。CopyMemory快一些,但是对于具体程序还是慢,因500x50个的元素每秒10次。
    难道mschart就不能设置什么属性显示数据的一部分?那这个控件也太弱智了吧。
      

  8.   


    实在不行当然自己画了。可是实在是不甘心,mschart这么有名这么多人用的东西连这么基本的事情都做不到?还是我们不知道它的某些属性吧。
      

  9.   

    这个问题我前几天刚刚在论坛求教过。可以用 Variant 型数组来解决。例如,你要显示点 101 - 200,则只对数组成员 100 - 199 赋值,其他保持为 Null。
      

  10.   


    但是等到要显示151-250时,又要用for循环对101-150处理。怎样设为null?
      

  11.   

    Dim chartdata() As VariantRedim chartdata(1000, 2)
    CopyMemory chartdata(100), yourdata(100), 100 * 4 '假定你的数据是 Single 型MSChart1.ChartData = chartdata不赋值就是 Null