不好:从form1加载图表用户控件

时间:2019-05-12 12:49:12

标签: c# charts user-controls

我现在用C#编写代码已有一年了,我开始开发有趣的东西。我是一名自动化工程师,我有一个项目来开发尽可能完整的PC系统。 PC充当自动机,数据库服务器和监视手段。目前,由于使用MODBUS方法,我可以与远程输入/输出库进行通信,可以将事件记录在数据库中,等等。就目前而言,我对我的工作非常满意。 只有一件事有问题:图形界面。

在我的项目中,我有一个包含变量的类,这些变量通过计时器每隔10 s检索它们的状态,我有一个表单,其中包含一个datagridviewer以显示变量的状态,而用户控件则包含图表,谁可以实时绘制我的变量

我班上的代码

       Random r = new Random();
    public static DateTime TheDateTimeNow = DateTime.Now;
    public double pitch_Col2r { get; set; }
    public double roll_Col2r { get; set; }

    //// affichage Table datagridview

    public void FillMainTable(int index)
    {

        pitch_Col2r = r.Next(1, 45);
        roll_Col2r = r.Next(10, 1000);

        string ClassName = "Sexdof";
        TheDateTimeNow = DateTime.Now;
        Form1.dtMain.Rows.Add(new Object[] { ++index, "Pitch_Col2", pitch_Col2r, DateTime.Now, ClassName });
        TheDateTimeNow = DateTime.Now;
        Form1.dtMain.Rows.Add(new Object[] { ++index, "Roll_Col2", roll_Col2r, DateTime.Now, ClassName });
    }

用户控制代码(图表) 6dof objsexdof2 =新的_6dof();         private int nbPointAffiches = 10;

    private static Chart1 _chart1;

    public static Chart1 chart1
    {
        get
        {
            if (_chart1 == null)
                _chart1 = new Chart1();
            return _chart1;
        }
    }


    public Chart1()
    {
        InitializeComponent();
    }

    private void initializeChart()
    {

        for (int iplot = 0; iplot < this.chart2.Series.Count; iplot++)
        {
            Series s = this.chart2.Series[iplot];
            s.YValueType = ChartValueType.Single;
            s.XValueType = ChartValueType.Time;
            s.ChartType = SeriesChartType.Line;
        }
        // Propriété du ChartArea :
        chart2.ChartAreas[0].AxisX.LabelStyle.Format = "mm:ss";
    }
    public void BuildChart()
    {
        // Positionne les min et max de l'axe X :
        chart2.ChartAreas[0].AxisX.Minimum = DateTime.Now.AddSeconds(-5).ToOADate();
        chart2.ChartAreas[0].AxisX.Maximum = DateTime.Now.AddSeconds(5).ToOADate();

        // Boucle sur les series :
        for (int iplot = 0; iplot < this.chart2.Series.Count; iplot++)
        {
            // Supprime le premier point de la série si nécessaire :
            if (this.chart2.Series[iplot].Points.Count > nbPointAffiches)
                this.chart2.Series[iplot].Points.RemoveAt(0);
        }
        // Ajoute un point Y aléatoire à l'heure Now :
        objsexdof2.FillMainTable(2);
        this.chart2.Series[0].Points.AddXY(DateTime.Now.ToOADate(), objsexdof2.pitch_Col2r);
        this.chart2.Series[1].Points.AddXY(DateTime.Now.ToOADate(), objsexdof2.roll_Col2r);
    }

    private void Chart1_Load(object sender, EventArgs e)
    {
        this.chart2.ChartAreas[0].AxisX.LabelStyle.Format = "HH:mm:ss";
        //this.chart2.ChartAreas[0].AxisY.Minimum = 10;
       // this.chart2.ChartAreas[0].AxisY.Maximum = 1000;
        initializeChart();
    }

他追回了积分,但没有追踪它们:

enter image description here enter image description here

我的[源代码] [3],如果有人可以看看。

http://www.mediafire.com/file/mxymx1bmmthu3hl/Codetest_10_05_20199%25282%2529.zip/file

0 个答案:

没有答案