我正在使用循环根据列名
向系列添加系列使用ds.Tables(“MyTable”)
Dim i As Integer = 0
For Each column As DataColumn In .Columns
If column.ColumnName Like "S1_*" Then
Chart2.Series.Add(column.ColumnName)
Chart2.Series(column.ColumnName).YValueMembers = column.ColumnName
Chart2.Series(column.ColumnName).ChartType = DataVisualization.Charting.SeriesChartType.Line
Chart2.Series(column.ColumnName).BorderWidth = 3
Chart2.Series(column.ColumnName).XValueMember = .Columns("DateTime").ToString
Chart2.Series(column.ColumnName).IsXValueIndexed = True
End If
Next
手动更改系列名称时一切正常
使用Chart2
.Series(0).Name = "Series Name 1"
.Series(1).Name = "Series Name 2"
.Series(2).Name = "Series Name 3"
结束
当我更改系列名称的更改方式时,会出现问题。如果我在循环中更改系列名称
对于i = 0到ds.Tables(“Qs”)。Rows.Count - 1
For x = 0 To Chart2.Series.Count - 1
If Chart2.Series(x).Name = ds.Tables("Qs").Rows(x).Item("Q_Name") Then
Chart2.Series(x).Name = ds.Tables("Qs").Rows(x).Item("Q_Text")
End If
Next
下一步
查看图表时出现以下错误
System.Windows.Forms.DataVisualization.dll中出现未处理的“System.ArgumentException”类型异常
附加信息:如果未对齐,则无法在同一轴上显示索引系列(XValueIndexed = true)。在“SeriesCollection”中找不到名称为“Series Name 1”的图表元素。
系列名称在循环中正确更新,如果我删除Chart2.Series(column.ColumnName),我可以看到图表.IsXValueIndexed = True。我能看到的唯一区别是如何更改系列名称。
感谢所有帮助/评论
答案 0 :(得分:0)
Visual Basic从1开始建立索引。尝试替换
.Series(0).Name = "Series Name 1"
与
.Series(1).Name = "Series Name 1"
其他系列也一样。