VB.net图表系列名称 - 使用循环时出错

时间:2016-07-04 10:05:15

标签: charts series

我正在使用循环根据列名

向系列添加系列

使用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。我能看到的唯一区别是如何更改系列名称。

感谢所有帮助/评论

1 个答案:

答案 0 :(得分:0)

Visual Basic从1开始建立索引。尝试替换 .Series(0).Name = "Series Name 1".Series(1).Name = "Series Name 1" 其他系列也一样。