0

データテーブルの列sdescrをループして、列のテキストをx軸のラベルとして使用しようとしていますが、機能していません。このエラーが発生します。

タイプ「System.Collections.Generic.List(OfString)」の値を「文字列の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
4

1 に答える 1

1

ポイントを作成しているForNextループからラベルを取得するには、コードを削除する必要があります。

これはこれを意味します

    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を確認する必要があります

発生しているエラーを確認してください...文字列のリストを文字列配列に変換できません。これらのオブジェクトは同等ではありません。

1つのオプションは、次のようなことを行うことです(ポイントをプロットするためのループの後)

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でこれを確認していませんが、これで非常に適切な方向性が得られるはずです。

于 2011-02-23T22:07:50.160 に答える