protected void UpdateMaterialChart() { if (_ctMaterial.InvokeRequired) { _ctMaterial.Invoke((System.Windows.Forms.MethodInvoker) (() => _ctMaterial.DataBind())); } else { _ctMaterial.DataBind(); } }
// Update a chart private void updateRefreshChart(System.Windows.Forms.DataVisualization.Charting.Chart chart) { if (!chart.IsDisposed) { if (chart.InvokeRequired) { RefreshChartCallback update = new RefreshChartCallback(_updateRefreshChart); chart.Invoke(update, new object[] { chart }); } else { _updateRefreshChart(chart); } } }
/// <summary> /// Charta yeni değer ekler. Ui thread de çalışıyorsa invoke eder. /// </summary> /// <param name="chart"></param> /// <param name="value"></param> public static void AddValue(this System.Windows.Forms.DataVisualization.Charting.Chart chart, double value) { int count = chart.Series["Func"].Points.Count + 1; if (chart.InvokeRequired) { chart.Invoke((Action)(() => chart.Series["Func"].Points.AddXY(count, value) )); } else { chart.Series["Func"].Points.AddXY(count, value); } }
public void ConfigShowArea(double T_Min, double T_Max, double D_Min, double D_Max) { Time_Min = T_Min; Time_Max = T_Max; Data_Min = D_Min; Data_Max = D_Max; ShowChart.Invoke(new EventHandler(delegate { ShowChart.ChartAreas[AreaIndex].Axes[0].Maximum = T_Max; ShowChart.ChartAreas[AreaIndex].Axes[0].Minimum = T_Min; ShowChart.ChartAreas[AreaIndex].Axes[1].Maximum = D_Max; ShowChart.ChartAreas[AreaIndex].Axes[1].Minimum = D_Min; })); }
//Mathod for creating graph from the double arrays public void graphCreate(System.Windows.Forms.DataVisualization.Charting.Chart chart, double[] samples) { chart.Invoke((MethodInvoker) delegate { chart.Series.Clear(); chart.Series.Add("wave"); chart.Visible = false; chart.Series["wave"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.FastLine; chart.Series["wave"].ChartArea = "ChartArea1"; for (int i = 0; i < samples.Length; i += 10) { chart.Series["wave"].Points.Add(samples[i]); } //foreach (double point in samples) //chart.Series["wave"].Points.Add(point); chart.Visible = true; }); }
/// <summary> /// 配置显示区域范围 /// </summary> public void ConfigShowArea(double T_Min, double T_Max, double D_Min, double D_Max) { Time_Min = Math.Round(T_Min, 1); Time_Max = Math.Round(T_Max, 1); Data_Min = Math.Round(D_Min, 1); Data_Max = Math.Round(D_Max, 1); if (Time_Max - Time_Min < 0.1 || Data_Max - Data_Min < 0.1) { return; } ShowChart.Invoke(new EventHandler(delegate { ShowChart.ChartAreas[AreaIndex].Axes[0].Maximum = Time_Max; ShowChart.ChartAreas[AreaIndex].Axes[0].Minimum = Time_Min; ShowChart.ChartAreas[AreaIndex].Axes[1].Maximum = Data_Max; ShowChart.ChartAreas[AreaIndex].Axes[1].Minimum = Data_Min; })); }
private void data_plotter_main(object sender, DoWorkEventArgs e) { UInt16 i = 0; while (stop_program == false) { if ((update_plot == true)) { update_plot = false; chart1.Invoke((MethodInvoker) delegate { chart1.Series["Inlet"].Points.AddXY(++i, values[0]); }); chart1.Invoke((MethodInvoker) delegate { chart1.Series["TV"].Points.AddXY(i, values[1]); }); chart1.Invoke((MethodInvoker) delegate { chart1.Series["NG"].Points.AddXY(i, values[2]); }); chart1.Invoke((MethodInvoker) delegate { chart1.Series["CT"].Points.AddXY(i, values[3]); }); chart1.Invoke((MethodInvoker) delegate { chart1.Series["Control"].Points.AddXY(i, values[4]); }); chart1.Invoke((MethodInvoker) delegate { chart1.ChartAreas[0].RecalculateAxesScale(); }); } Thread.Sleep(100); } }