2012-05-12 1 views
1

Я пытаюсь построить функцию, которая возвращает диаграмму. Я хочу иметь параметр для учета времени, когда мне может потребоваться более одной серии. Как сделать цикл для создания нескольких серий? Я думаю, вам понадобится переменная для каждой серии. Функция ниже. Я бы подумал, что если бы было 5 серий, каждая переменная «Dataseries» должна иметь свое имя. Должен ли я ссылаться на них только по индексу?Loop для создания нескольких рядов в управлении диаграммами

Public Shared Function MakeChart(ByVal form As Form, Optional ByVal numseries As Integer = 0) As Chart 

    ' Add any initialization after the InitializeComponent() call. 
    Dim SampleChart As Chart = New Chart() 
    Dim MainChartArea As ChartArea = New ChartArea() 
    Dim ChartLegend As Legend = New Legend() 
    Dim Dataseries As Series = New Series() 
    Dim seriesname As String = "" 

    'add additonal series if the parameter exists 
    If numseries > 0 Then 
     For i As Integer = 0 To numseries - 1 
      seriesname = "Series" & Convert.ToString(i) 
      Dataseries = SampleChart.Series.Add(i) 
      Dataseries.Name = seriesname 
     Next 
    Else 
     DataSeries = SampleChart.Series.Add("Series1") 
     Dataseries.Name = "Series1" 
    End If 
    form.Controls.Add(SampleChart) 

    SampleChart.ChartAreas.Add(MainChartArea) 
    SampleChart.Legends.Add(ChartLegend) 
    SampleChart.Dock = DockStyle.Fill 
    SampleChart.TabIndex = 0 
    Return SampleChart 
End Function 

ответ

0

Index или String, так что да, вы можете обратиться к серии под названием:

MessageBox.Show("First Series is " & SampleChart.Series(0).Name) 

или

MessageBox.Show("First Series is " & SampleChart.Series("Series0").Name) 

Примечание, хотя: Если строка не найдена, управление вызовет ошибку ArgumentException.

Смежные вопросы