vb之mschart控件小结

 

       暑假的时候室友论文中需要比较数据趋势,画曲线图,正好我是学计算机的,便接下了这个任务,也算是做个小软件练习下,在选择语言的时候,我犹豫了,因为需要图形界面,我平时练算法用的c,显然不适合,java和vb都学过一些,不过我对java里面类(太多了)感到头疼,便选择用vb做这个事情。

      重新熟悉了下vb的语法,首先vb也不是一个纯面向对象语言,控件都是用对象封装的,但是也有模块这种面向过程的代码。其中全局变量和公共方法都是放在模块中的,vb的数组定义也很有意思,默认情况下数组定义时需要指定数组的大小且大小数值必须为常量,这样想要定义一个变长的数组便有些麻烦,vb提供了redim方法,可以重新定义先前声明的数组

如:

Public array() as Integer


Public Function myarray( len as Integer)
redim array(1 to len)
myarray=array
End Function

 这样可以在函数中来动态定义变长数组。其他循环,分支,变量定义等都很好理解。

      下面来重点说一下mschart控件,mschart控件是微软提供的画图控件,我所要实现的就是用它画多条折线图。几个需要学习的知识点如下:

'指定arrData为曲线数据来源,其中arrData(i,0)如果为字符串则其被作为x轴刻度标签
MSChart1.ChartData = arrData
'指定所画图表的类型,竖状图,饼图,折线图等等
MSChart1.chartType = VtChChartType2dLine
'指定第i条曲线图例标签的名字
MSChart1.Column = i
MSChart1.ColumnLabel = "temprature 1"
'图例设置为显示
MSChart1.ShowLegend = true
'设置y轴最大刻度为60,最小刻度为16,共有8条刻度线
MSChart1.Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 60
MSChart1.Plot.Axis(VtChAxisIdY).ValueScale.Minimum = 16
MSChart1.Plot.Axis(VtChAxisIdY).ValueScale.MajorDivision =8
'设置x,y轴坐标网格为虚线
MSChart1.Plot.Axis(VtChAxisIdX).AxisGrid.MajorPen.Style = VtPenStyleDotted
MSChart1.Plot.Axis(VtChAxisIdY).AxisGrid.MajorPen.Style = VtPenStyleDotted
'设置x轴标题,同理可设置y轴标题,整个图表标题
MSChart1.Plot.Axis(VtChAxisIdX).AxisTitle.Text = "time"
MSChart1.TitleText = "temprature_time"

基本上掌握这些都差不多能画出一个满足要求的图表了。还有一些比较不常用的属性可以自己编码试一下,可以看着英文意思猜一下等。

这是我画图的一个截图,效果还可以。

    通过这次编写代码感觉自己在图形化程序上面存在弱势,哥要学习java了,以后这种程序就用java写了,vb太古老了,有点落后,有时间也想看看c#,多了解一门语言总是好的,用的时候多一种选择。

posted @ 2012-08-11 22:10  huals  阅读(3185)  评论(0编辑  收藏  举报