0
我需要使用ms圖表控件創建一個示波器模擬器。我將數據存儲在一個數組中。但我不知道如何創建「移動效果」 - 持續更新控件。 (從圖表控件添加/刪除點),並在控件上每秒繪製一條垂直線。C#示波器模擬器(帶MS圖表控件)
我的代碼是:
private void Form1_Load(object sender, EventArgs e)
{
chart1.Series["Series1"].ChartType = SeriesChartType.Line;
chart1.Series["Series1"].BorderWidth = 3;
// NO grids
chart1.ChartAreas[0].AxisX.MajorGrid.LineWidth = 0;
chart1.ChartAreas[0].AxisY.MajorGrid.LineWidth = 0;
chart1.PostPaint += new EventHandler<ChartPaintEventArgs>(chart1_PostPaint);
}
void chart1_PostPaint(object sender, ChartPaintEventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
string fileContent = File.ReadAllText("e:\\in.txt");
string[] integerStrings = fileContent.Split(new char[] { ' ', '\t', '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
int[] integers = new int[integerStrings.Length];
for (int n = 0; n < integerStrings.Length; n++)
{
integers[n] = int.Parse(integerStrings[n]);
chart1.Series["Series1"].Points.Add(integers[n]);
}
}
所有你需要做的是從一開始就刪除數據點,同時增加新的..:'如果( chart1.Series [「Series1」] .Points.Count> number)chart1.Series [「Series1」] .Points.RemoveAt(0);' – TaW
感謝您的回答。我有一個1200數值的虛擬數據集。而我顯示的卡盤我把它設置爲100.我整合了你的想法,但它並沒有給我「滾動效果」。我需要延遲嗎?我在這裏錯過了什麼? for(int n = 0; n 100)chart1.Series [「Series1」] .Points.RemoveAt(0);圖表1.系列[「Series1」] .Points.Add(整數[n]); } –
Fiara
是的動畫使用計時器!查看@ jstreet的回答! – TaW