2015-11-19 4 views
1

Эй, ребята, я пытаюсь создать таблицу обновления строки в C#, но я получаю об отсутствии исключения диапазона на chart1.Series[0].Points[0].XValue. Мой код выглядит следующим образом:C# из или исключение размахов

 {  
    _valueList.Add(mspk); 
    chart1.ResetAutoValues(); 

    if (chart1.Series[0].Points.Count > 0) 
     { 

      while (chart1.Series[0].Points[0].XValue < chart1.ChartAreas[0].AxisX.Minimum+5000) 
      { 

        chart1.ChartAreas[0].AxisX.Minimum = chart1.Series[0].Points[0].XValue - 5000; 
        chart1.ChartAreas[0].AxisX.Maximum = chart1.Series[0].Points[0].XValue + 5000; 
        chart1.Series[0].Points.RemoveAt(0); 
      } 

     } 
    chart1.Series[0].Points.AddXY(inst, _valueList[_valueList.Count - 1]); 
    chart1.Invalidate(); 
    } 

Я не очень опытный в C#, поэтому я попытался адаптировать этот код, который использует случайные числа с течением времени. У меня не было никаких проблем переключения из случайных чисел, на мой вход, но я не могу показаться, чтобы выяснить, как я могу заменить время с моими данными

 private void AddData() 
    { 
     DateTime now = DateTime.Now; 
     //Insert a number into the list. 
     _valueList.Add(_ran.Next(0, 100)); 


     chart1.ResetAutoValues(); 

     //Remove old datas from the chart. 
     if (chart1.Series[0].Points.Count > 0) 
     { 
      while (chart1.Series[0].Points[0].XValue < now.AddSeconds(-5).ToOADate()) 
      { 
       chart1.Series[0].Points.RemoveAt(0); 

       chart1.ChartAreas[0].AxisX.Minimum = chart1.Series[0].Points[0].XValue; 
       chart1.ChartAreas[0].AxisX.Maximum = now.AddSeconds(5).ToOADate(); 
      } 
     } 

     //Insert a data into the chart. 

     chart1.Series[0].Points.AddXY(now.ToOADate(), _valueList[_valueList.Count - 1]); 

     chart1.Invalidate(); 
    } 

Заранее спасибо

+0

Какой тип диаграммы вы используете? –

+0

Это стандартная диаграмма окон, установленная как строка chanrt – makripx

ответ

0

Убедитесь, что chart1.Series [0] существует, прежде чем пытаться получить доступ к его свойствам.

private void AddData() 
{ 
    DateTime now = DateTime.Now; 
    //Insert a number into the list. 
    _valueList.Add(_ran.Next(0, 100)); 


    chart1.ResetAutoValues(); 

    if(chart1.Series.Count==0) // Check to make sure Series 0 exists 
    { 
     chart1.Series.Add("Series 1"); // If it doesn't exist then create it. 
    } 

    //Remove old datas from the chart. 
    if (chart1.Series[0].Points.Count > 0) 
    { 
     while (chart1.Series[0].Points[0].XValue < now.AddSeconds(-5).ToOADate()) 
     { 
      chart1.Series[0].Points.RemoveAt(0); 

      chart1.ChartAreas[0].AxisX.Minimum = chart1.Series[0].Points[0].XValue; 
      chart1.ChartAreas[0].AxisX.Maximum = now.AddSeconds(5).ToOADate(); 
     } 
    } 

    //Insert a data into the chart. 

    chart1.Series[0].Points.AddXY(now.ToOADate(), _valueList[_valueList.Count - 1]); 

    chart1.Invalidate(); 
} 
+0

Я чувствую себя настолько глупо. Я попытался проверить, есть ли еще точки в серии, прежде чем я использовал команду remove – makripx

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