zed图x轴标签

时间:2011-02-23 21:41:40

标签: asp.net vb.net zedgraph

我正在尝试遍历我的数据表列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

1 个答案:

答案 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中检查过这个,但这应该给你一个非常好的方向。