2011-02-23 160 views
0

我通过我的数据表列sdescr试图循环并使用在列,我的x轴的标签文本,但它不是工作我收到此错误捷思图X轴标签

价值键入 'System.Collections.Generic.List(的 字符串)'不能转换为 '1维数组的字符串'。

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 

回答

1

你需要删除代码来获取标签出你对于下一循环,是创建点。

这意味着这

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中选中此,但这应该会给你一个非常体面的方向。