为什么我的Chart控件上显示不出曲线?
DateTime dt;
Chart cht1=new Chart();
Series s1=new Series();
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);
}
private void timer1_Tick(object sender, EventArgs e)//一个定时器,每1秒中进来一次
{
dt = DateTime.Now;
dt.ToLongTimeString();
cht1.Series[0].Points.AddXY(dt.ToLongTimeString(), 10);//每次定时到时都画一个纵坐标为10的点
}
为什么我能看到Chart控件显示在面板上,但是看不到画出的曲线呢?
------解决方案--------------------你没有再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的点
}
------解决方案--------------------呵呵 用DEVexpress吧 那个强大多了
------解决方案--------------------用這個 http://www.arction.com/
------解决方案--------------------C# code
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;
}
}