你没有再Load事件中加Timer的Tick事件private void MainForm_Load(object sender, EventArgs e)
{
  s1 = new Series();
  s1.ChartType = SeriesChartType.Line;
  s1.Color = Color.Gold;  
  s1.BorderWidth = 1;  
  s1.ShadowOffset = 0;  
  s1.IsVisibleInLegend = false;  
  s1.MarkerStyle = MarkerStyle.Circle;  
  s1.MarkerSize = 3;
  s1.XValueType = ChartValueType.Time;
  s1.YValueType = ChartValueType.Auto;
  cht1.Location = pt;
  cht1.Width = 445;
  cht1.Height = 172;
  cht1.BackColor = Color.Azure;
  cht1.Titles.Add("Power history curve");
  cht1.Series.Add(s1);
  Controls.Add(cht1);
  
    System.Timers.Timer timer1 = new System.Timers.Timer(1000);
    timer1 .Elapsed += new System.Timers.ElapsedEventHandler(timer1_Elapsed);
    timer1 .AutoReset = true;
    timer1 .Enabled = true;

}private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
  dt = DateTime.Now;
  dt.ToLongTimeString();
  cht1.Series[0].Points.AddXY(dt.ToLongTimeString(), 10);//每次定时到时都画一个纵坐标为10的点
}

解决方案 »

  1.   

    呵呵 用DEVexpress吧 那个强大多了
      

  2.   

    用這個 http://www.arction.com/
      

  3.   


    private void MainForm_Load(object sender, EventArgs e)
    {
      s1 = new Series();
      s1.ChartType = SeriesChartType.Line;
      s1.Color = Color.Gold;   
      s1.BorderWidth = 1;   
      s1.ShadowOffset = 0;   
      s1.IsVisibleInLegend = false;   
      s1.MarkerStyle = MarkerStyle.Circle;   
      s1.MarkerSize = 3;
      s1.XValueType = ChartValueType.Time;
      s1.YValueType = ChartValueType.Auto;
      cht1.Location = pt;
      cht1.Width = 445;
      cht1.Height = 172;
      cht1.BackColor = Color.Azure;
      cht1.Titles.Add("Power history curve");
      cht1.Series.Add(s1);
      Controls.Add(cht1);
       //加上这个试试
    for (int i = 0; i < cht1.Series.Count; i++)
                {
                    cht1.Series[i].ChartType = SeriesChartType.Line;
                }}