我正在构建一个简单的WinForms(C#)应用程序来显示图表中的一些数据分布。我在我的应用程序中使用.net图表控件。我的表单上只有一个图表和按钮控件,我想填充图表onclick事件。 我在onclick事件中使用了类似的东西:
chartPractice.Series["Distribution"].Points.AddXY("1", 150);
chartPractice.Series["Distribution"].Points.AddXY("2", 11);
chartPractice.Series["Distribution"].Points.AddXY("3", 250);
填充图表中的值可以正常工作。
我希望实现允许应用程序用户实时填充图表的功能。
例如,如果我将系列放入for循环中,则最终输出将显示在图表控件中:
for (int i = 0; i < 900; i++)
{
chartPractice.Series["Distribution"].Points.AddXY("1", i);
}
我希望用户看到直方图条随每次循环迭代而变化。现在当我使用上面的方法时,应用程序只需完成循环并在图表中显示最终结果。
谢谢,
答案 0 :(得分:1)
实际上解决方案非常简单,我有点尴尬,我没有早点弄清楚。我所要做的只是在循环中添加chartPractice.Refresh();
。
它强制应用程序在每次迭代后重绘图形。
我希望这个答案可以帮助那些可能正在处理需要此功能的应用程序的其他人。
答案 1 :(得分:0)
我认为你应该让你的线程在几毫秒内睡眠
for (int i = 0; i < 900; i++)
{
chartPractice.Series["Distribution"].Points.AddXY("1", i);
System.Threading.Thread.Sleep(100); //each loop will sleep 100 millisecond before continue
}