vb MSchart控件使用详细说明,求高手

2024-12-25 16:26:48
推荐回答(2个)
回答1:

使用 MSChart 控件可以按照一定的规范将数据以图表的形式绘制出来。可以通过在控件的属性页中设置数据来创建图表,或者也可以从其它数据源,如 Microsoft Excel 的电子数据表中检索出要绘制的数据。本主题中的信息主要讨论将 Excel 工作表作为数据源。

可能的用途对动态数据绘制图表,例如选定商品的当前价格。

对存储数据绘制图表,例如产品价格,以便利用图形分析趋势。 使用数组和 ChartData 属性绘制数据

绘制图表最简单的方法就是创建数字型的数组,然后将 ChartData 属性设为该数组,如下例所示:

' 这段代码可以粘贴到一个Form的 Load ' 事件中,该Form包含名为“MSChart1”的 ' MSChart 控件。
Dim arrPrices(1 to 10)Dim i As IntegerFor i = 1 to 10   arrPrices(i)= i * 2Next iMSChart1.ChartData = arrPrices

上面的代码将产生简单的单系列图表。图表中的一个“系列”就是一个相关的数据点集。例如,典型的系列可以是一年中商品的价格。下面的图表显示了一个单系列图表。

 

 

要创建更复杂的多系列图表,必须创建多维数组,如下例所示:

' 系列的数目是由第二个维数决定的。
' 在本例中,图表将有两个系列,
' 每个系列有五个数据点。
Dim arrPriceQuantity(1 to 5, 1 to 2)Dim i as IntegerFor i = 1 to 5   arrPriceQuantity(i, 1) = i ' Series 1   arrPriceQuantity(i, 2) = 0 - i ' Series 2Next iMsChart1.ChartData = arrPriceQuantity

这个例子产生的图表如下:

 

向图表中添加标签

创建多维数组时,可以将第一个系列赋值为字符串;当数组赋值给 ChartData 属性时,字符串将会成为行的标签。下面的代码显示了这个特点。

Dim arrValues(1 to 5, 1 to 3)
Dim i as Integer
For i = 1 to 5
   arrValues(i, 1) = "Label " & i ' Labels
   arrValues(i, 2) = 0 + i ' Series 1 values.
   arrValues(i, 3) = 2 * i ' Series 2 values.
Next i
MsChart1.ChartData = arrValues

上面的代码产生的图表如下:

 

正如所看见的那样,使用 ChartData 属性创建图表的方法快捷而且简便。但是,使用数组的问题是要将数据取到数组中。这类数据的大多数用户可能更想使用某种电子表格程序,例如 Microsoft Excel,或某种数据库程序,如 Microsoft Access,来存贮和检索数据。

设置或返回数据点

一旦使用来自电子表格或其它数据源的数组创建了图表,可能也希望设置或返回某个指定数据点的值。要做到这一点,可以首先设置 Row 和(如果可以的话) Column 属性,然后设置或返回 Data 属性。例如,在简单的(单系列的)图表中,下面的代码将会改变第三个数据点。

With MSChart1
   ' 将第三个数据点改为50。
.Row = 3   .Data = 50 End With

如果图表有不止一个系列,那么可以使用 Column 属性来指定系列,然后再象上面那样设置 Row 和 Data 属性。

With MSChart1
   ' 将第四个系列的第二
' 个数据点设为42。
.Column = 4   .Row = 2   .Data = 42End With使用 PointActivated 事件修改数据点

如果已经开始研究 MSChart 控件,那么就会发现它包含了大量的事件。利用这些事件可以对图表编程,使图表能够响应几乎所有的用户操作。作为这种可编程性的例子,下面的示例中将使用 PointActivated 事件来说明如何利用 Series 和 DataPoint 参数修改数据点。(PointActivated 事件在数据点被双击时发生。)Series 和 DataPoint 参数对应于 Column 和 Row 属性,因此可以用来设置 Data 属性:

Private Sub MSChart1_PointActivated(Series As _
   Integer, DataPoint As Integer, MouseFlags As _
   Integer, Cancel As Integer)
   With MSChart1
      .Column = Series
      .Row = DataPoint
      .Data = InputBox _
      ("Change the data point:", , .Data)
   End With 
End Sub
MSchart的属性和方法都很多,我就不一一说了

回答2:

闪过