C# Chart中数据更新 c#Chart更新 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 很奇怪的问题是:里面数据确实是更新过来了,为什么将this.ShowChart6();这一句放在窗体的Load事件里就能够正确?而放在时间那个里面的时候就不能更新控件? Timer的Interval、Enabled属性怎么设置的,Tick事件有没有关联给Timer_Tick 这个Timer控件都没有问题,我调试到那里了,值都已经赋给了Chart的Points,但是图就是不更新,现在的解决方法还是要重新添加点,不能给原来的点重新赋值,如下: private void ShowChart6() { this.chart6.Series[0].Points.Clear(); this.chart6.Series[1].Points.Clear(); this.chart6.Series[2].Points.Clear(); for (int groupIndex = 0; groupIndex < 12; groupIndex++) { DataPoint dPoint1 = new DataPoint(0, Convert.ToDouble(this.CountList.Groups[groupIndex].Items[0].SubItems[1].Text)); dPoint1.AxisLabel = this.CountList.Groups[groupIndex].Header; DataPoint dPoint2 = new DataPoint(0, Convert.ToDouble(this.CountList.Groups[groupIndex].Items[1].SubItems[1].Text)); DataPoint dPoint3 = new DataPoint(0, Convert.ToDouble(this.CountList.Groups[groupIndex].Items[2].SubItems[1].Text)); this.chart6.Series[0].Points.Add(dPoint1); this.chart6.Series[1].Points.Add(dPoint2); this.chart6.Series[2].Points.Add(dPoint3); } } 如果直接调用 ShowChart6()正常,那放在timer里也应该正常,你timer的Interval设置为多少 开始是500, private void timer_Tick(object sender, EventArgs e) { if (updateWinform) { updateWinform = false; this.timer.Enabled = false; this.ShowChart6(); this.timer.Interval = 20000; this.timer.Enabled = true; } } 这个放在load里吧,这样试试 this.timer.Interval = 20000; this.timer.Enabled = true; if (updateWinform) { this.ShowChart6(); updateWinform = false; this.timer.Enabled = false;} 我之前是 this.timer.Interval = 500; this.timer.Enabled = true;我不知道改成200000有什么不一样?没有试,我现在用的是4楼的办法,重新加。但是遇到一个问题,就是在其他电脑上不能用,出现一个错误。如我另外一个帖子所述http://bbs.csdn.net/topics/390785694现在我的解决方案是修改引用的设置,如图,不知道有没有更好的办法? 终于明白了什么叫做“算法才是程序的精华” winform 分页技巧求解 C#彩信内容整合问题 求助:使用多个站点地图时出现错误 多维数组越界问题,强分题 有关datareader问题 帮助:一个类库开发时包括N个CS文件,开发中是一个dll,被另一个解决项目引用,现在想发布时将类库N个CS文件编译成各自DLL 各位你们下载的“Coffice协同办公管理系统"可以运行吗? DataGrid 导出Excel 如何设置Excel单元格格式? DockPanel点击关闭菜单按钮变为可用 datagirdview的问题。。。查询系统列会无限的增加。。。肿么办? 公司内网如何使用sql呢?
private void ShowChart6()
{
this.chart6.Series[0].Points.Clear();
this.chart6.Series[1].Points.Clear();
this.chart6.Series[2].Points.Clear();
for (int groupIndex = 0; groupIndex < 12; groupIndex++)
{
DataPoint dPoint1 = new DataPoint(0, Convert.ToDouble(this.CountList.Groups[groupIndex].Items[0].SubItems[1].Text));
dPoint1.AxisLabel = this.CountList.Groups[groupIndex].Header;
DataPoint dPoint2 = new DataPoint(0, Convert.ToDouble(this.CountList.Groups[groupIndex].Items[1].SubItems[1].Text));
DataPoint dPoint3 = new DataPoint(0, Convert.ToDouble(this.CountList.Groups[groupIndex].Items[2].SubItems[1].Text));
this.chart6.Series[0].Points.Add(dPoint1);
this.chart6.Series[1].Points.Add(dPoint2);
this.chart6.Series[2].Points.Add(dPoint3);
}
}
private void timer_Tick(object sender, EventArgs e)
{
if (updateWinform)
{
updateWinform = false;
this.timer.Enabled = false;
this.ShowChart6();
this.timer.Interval = 20000;
this.timer.Enabled = true;
}
}
this.timer.Interval = 20000;
this.timer.Enabled = true;
if (updateWinform)
{
this.ShowChart6();
updateWinform = false;
this.timer.Enabled = false;
}
this.timer.Interval = 500;
this.timer.Enabled = true;
我不知道改成200000有什么不一样?没有试,我现在用的是4楼的办法,重新加。
但是遇到一个问题,就是在其他电脑上不能用,出现一个错误。如我另外一个帖子所述http://bbs.csdn.net/topics/390785694
现在我的解决方案是修改引用的设置,如图,不知道有没有更好的办法?