我正在尝试遍历我的数据表列sdescr并使用列中的文本作为我的x轴的标签,但它无法正常工作我收到此错误
类型的价值 “System.Collections.Generic.List(中 字符串)'无法转换为 '一维字符串数组'。
For i As Integer = 0 To myCurve1.Points.Count - 1
Dim pt As PointPair = myCurve1.Points(i)
' Create a text label from the Y data value
Dim text As New TextObj(pt.Y.ToString("f0"), pt.X, pt.Y + 0.1, CoordType.AxisXYScale, AlignH.Left, AlignV.Center)
text.ZOrder = ZOrder.A_InFront
text.FontSpec.Angle = 90
myPane.GraphObjList.Add(text)
Dim labels As New List(Of String)
For Each row As DataRow In tablegraph.Rows
labels = row.Item("SDESCR")
Next row
myPane.XAxis.Scale.TextLabels = labels
myPane.XAxis.Type = AxisType.Text
Next
答案 0 :(得分:1)
您需要删除代码以从正在创建点的For Next循环中获取标签。
这意味着这个
Dim labels As New List(Of String)
For Each row As DataRow In tablegraph.Rows
labels = row.Item("SDESCR")
Next row
myPane.XAxis.Scale.TextLabels = labels
myPane.XAxis.Type = AxisType.Text
现在,在循环绘图点之外,您需要浏览DataTable
请查看您收到的错误...无法将字符串列表转换为字符串数组。那些对象并不等同。
一种选择是做这样的事情(在你的循环绘制点之后)
Dim labels(tablegraph.Rows.Count - 1) as String
For i As Integer = 0 To tablegraph.Rows.Count - 1
labels(i) = tablegraph.Row(i).Item("SDESCR")
Next
myPane.XAxis.Scale.TextLabels = labels
myPane.XAxis.Type = AxisType.Text
我这台电脑上没有Zed,所以我没有在Visual Studio中检查过这个,但这应该给你一个非常好的方向。