Принесите меня, я новичок в переполнении стека, но долгое время использовал его в качестве ресурса при изучении методов программирования, с которыми я не люблю.C# - Обновление диаграммы в реальном времени
Я прочитал tutorial on how to create a graph in a C# Windows Forms Application и пытался выяснить, как заставить его обновлять себя в режиме реального времени, если мне когда-либо понадобится использовать график для построения общего объема данных в датчике. Чтобы проверить это, я использую таймер, тикающий каждую секунду (1000 мс). И прежде чем я смогу использовать это с датчиком, у меня есть два значения, автоматически увеличивающиеся на 1.
Текущая проблема, с которой я сталкиваюсь, заключается в том, что сама диаграмма не будет обновляться и остается только в том виде, в каком она была нарисована когда форма загружена. I thought it was because I have to redraw the chart withchart1.Update();
, и я попытался использовать это до/после воссоздания диаграммы каждую секунду. Однако результат будет тем же самым. Я просто задавался вопросом, есть ли что-то, чего я не сделал или его нужно изменить, чтобы обновить график в режиме реального времени.
Это где код на данный момент:
public partial class Form1 : Form
{
int a = 1;
int b = 2;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// Data arrays.
string[] seriesArray = { "Cats", "Dogs" };
int[] pointsArray = { a, b };
// Set palette.
this.chart1.Palette = ChartColorPalette.SeaGreen;
// Set title.
this.chart1.Titles.Add("Pets");
// Add series.
for (int i = 0; i < seriesArray.Length; i++)
{
// Add series.
Series series = this.chart1.Series.Add(seriesArray[i]);
// Add point.
series.Points.Add(pointsArray[i]);
}
}
private void timer1_Tick(object sender, EventArgs e)
{
a++;
b++;
// Data arrays.
string[] seriesArray = { "Cats", "Dogs" };
int[] pointsArray = { a, b };
// Set palette.
this.chart1.Palette = ChartColorPalette.SeaGreen;
// Set title.
this.chart1.Titles.Add("Pets");
// Add series.
for (int i = 0; i < seriesArray.Length; i++)
{
// Add series.
Series series = this.chart1.Series.Add(seriesArray[i]);
// Add point.
series.Points.Add(pointsArray[i]);
}
chart1.Update();
}
}
Посмотрите http://sourceforge.net/projects/zedgraph/ –
Вы пробовали использовать [.refresh()] (http://stackoverflow.com/questions/21909196/msdn-charts- change-point-values-realtime) вместо .Update()? – BCdotWEB
Не должно быть необходимости. Это Таймер начался? И вы попадаете в TIck? – TaW