二维数组定义变量 MSchart代码设置第5条曲线

jainkai 2018-04-26 12:38:45

Dim MyData(35, 3) As Double 问题1: 35是试验数据,我想要的是ADODC的数据集,有几条数据X轴就显示几条
如果DIM mydata(adodc1.recoadset,3) 就报错必须要常量,但我的就是变量啊
For W1 = 0 To Label39‘label39就是数据集-1’
MyData(W1, 0) = Val(MSHFlexGrid1.TextMatrix(W1 + 1, 21))
Next W1
'
For w2 = 0 To Label39
MyData(w2, 1) = Label40 '上
Next w2


For w3 = 0 To Label39
MyData(w3, 2) = Label41 '下
Next w3


For w4 = 0 To Label39
MyData(w4, 3) = Label34 '中
Next w4

With MSChart2
.Plot.SeriesCollection(1).Pen.Width = 25
.Plot.SeriesCollection(2).Pen.Width = 20
.Plot.SeriesCollection(3).Pen.Width = 20
.Plot.SeriesCollection(4).Pen.Width = 20
’.Plot.SeriesCollection(5).Pen.Width = 20 问题2:第5条线不能设置粗细了,属性里就也只到了C4,
.Plot.SeriesCollection(1).SeriesMarker.Auto = False
.Plot.SeriesCollection(1).DataPoints.Item(-1).Marker.Style = VtMarkerStyleFilledSquare '显示标识 方块
.Plot.SeriesCollection(1).DataPoints.Item(-1).Marker.Size = 100 '显示标记的大小
.Plot.Axis(VtChAxisIdY).ValueScale.Maximum = Label40 + 10 '设置Y轴最大值
.Plot.Axis(VtChAxisIdY).ValueScale.Minimum = Label41 - 10 '设置Y轴最小值
.ChartType = VtChChartType2dLine ' 设置图形为线图
.ChartData = MyData ' 数据

End With


上面两个不知道怎么弄,求解
问题2,如果数组改为mydate(35,4)的话,第5条线也可以画出来,但是不能设置颜色,粗细等参数?属性里也就是C1-C4
...全文
480 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jainkai 2018-04-27
  • 打赏
  • 举报
回复
我只想撞墙...
赵4老师 2018-04-27
  • 打赏
  • 举报
回复
VB6可视化程序设计(无锡职业技术学院)http://download.csdn.net/detail/zhao4zhong1/6824713
舉杯邀明月 2018-04-26
  • 打赏
  • 举报
回复
引用 4 楼 jainkai 的回复:
Dim MyData( ) As Double ReDim MyData(label5,3) As Double
给你说了要“数值”,你还写个“label5”! label5 是个控件,能直接代表数值吗! 对你很无语!!!!
jainkai 2018-04-26
  • 打赏
  • 举报
回复
Dim MyData( ) As Double ReDim MyData(label5,3) As Double
jainkai 2018-04-26
  • 打赏
  • 举报
回复
是的是的 使我简写了 你就当是label吧,label里放的是数据集的个数 我用redim好像也报错吗 Dim MyData( ) As Double Dim MyData(label5,3) As Double
引用 1 楼 Chen8013 的回复:
没使用过这个控件。 你的“问题1”,应该用“动态数组”而不是用固定数组! 在“变量声明”的地方这样写:  Dim MyData( ) As Double 后面要使用(要“放入数据”前)前,执行“redim ”指令就行了,比如: ReDim mydata(adodc1.recoadset, 3) 你要保证 adodc1.recoadset “不为空”,否则可能引起异常。 PS: 我觉得你这儿写“adodc1.recoadset”是极不好的习惯! 我刚才查了一下,你的“adodc1”应该是一个“Adodc控件”,对吧! 它的“recoadset属性”,类型是 _Recordset_Deprecated ,这是一个“Class” !!!  然后,这个“类”的默认属性,是 “Fields” 数据类型是 Fields_Deprecated;  再然后,Fields的默认属性,是 “Item” 数据类型是 Field_Deprecated ;  而 Field_Deprecated 是这样定义的: Property Item(Index) As Field_Deprecated  可见,这儿缺少 Index参数! 你写的 adodc1.recoadset 很可能无法编译通过(执行到它时会“异常”)。  退一万步说,就算“Index参数”可以缺省,Field_Deprecated的默认属性是 Value,    定义为 Property Value As Variant 定义“数组大小”时,需要的是“数值”,你这样写的,   鬼才知道从 adodc1.recoadset→去绕了十万八千里的Value 会取得了个什么值!!!
舉杯邀明月 2018-04-26
  • 打赏
  • 举报
回复
虽然我从来没用过这些,但凭直觉,你这儿的:adodc1.recoadset   正确写法应该是: adodc1.recoadset.Fields.Count   或者写成 adodc1.recoadset.Count
舉杯邀明月 2018-04-26
  • 打赏
  • 举报
回复
没使用过这个控件。 你的“问题1”,应该用“动态数组”而不是用固定数组! 在“变量声明”的地方这样写:  Dim MyData( ) As Double 后面要使用(要“放入数据”前)前,执行“redim ”指令就行了,比如: ReDim mydata(adodc1.recoadset, 3) 你要保证 adodc1.recoadset “不为空”,否则可能引起异常。 PS: 我觉得你这儿写“adodc1.recoadset”是极不好的习惯! 我刚才查了一下,你的“adodc1”应该是一个“Adodc控件”,对吧! 它的“recoadset属性”,类型是 _Recordset_Deprecated ,这是一个“Class” !!!  然后,这个“类”的默认属性,是 “Fields” 数据类型是 Fields_Deprecated;  再然后,Fields的默认属性,是 “Item” 数据类型是 Field_Deprecated ;  而 Field_Deprecated 是这样定义的: Property Item(Index) As Field_Deprecated  可见,这儿缺少 Index参数! 你写的 adodc1.recoadset 很可能无法编译通过(执行到它时会“异常”)。  退一万步说,就算“Index参数”可以缺省,Field_Deprecated的默认属性是 Value,    定义为 Property Value As Variant 定义“数组大小”时,需要的是“数值”,你这样写的,   鬼才知道从 adodc1.recoadset→去绕了十万八千里的Value 会取得了个什么值!!!

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧