2011-02-23 204 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中選中此,但這應該會給你一個非常體面的方向。