Приостановить и возобновить обновление диаграммы и текстового поля нажатием кнопки C# формы - PullRequest
1 голос
/ 16 июня 2020

Итак, я хочу иметь возможность приостанавливать и возобновлять обновление моей диаграммы и текстового поля, когда я нажимаю кнопку. В настоящее время он просто обновляется в режиме реального времени. Я прикрепил свой код ниже, я пробовал ResumeUpdates () и PauseUpdates () для диаграммы, но это не работает для текстовых полей, о которых я понятия не имею. Данные, которые я получаю, хранятся в ArrayList, причем изначально они поступают из последовательного порта

Изменить: если у меня есть initraph () в функции кнопки mmy и вызываю ее оттуда, она вызывает ее один раз и обновляется один раз.

нажатие первой кнопки = диаграмма и текстовые поля обновляются в реальном времени

нажатие второй кнопки = пауза в диаграмме и текстовых полях

нажатие третьей кнопки = возобновление обновления диаграммы и текстовых полей

enter image description here

 private void InitChart()
        {
            if (!b)
            {
                speedRecordChart.ChartAreas[0].AxisX.Maximum = 200;
                speedRecordChart.ChartAreas[0].AxisX.Minimum = 0;


                if (position.lat1 > 90)
                {

                    textBox_analLat.Text = position.latComp1 + position.lat1 / 100;
                }
                else
                {

                    textBox_analLat.Text = position.latComp1 + position.lat1;
                }

                if (position.lng1 > 180)
                {
                    textBox_analLong.Text = position.lngComp1 + position.lng1 / 100;
                }
                else
                {
                    textBox_analLong.Text = position.lngComp1 + position.lng1;

                }

                speedRecordChart.Series["Speed"].Points.Clear();


                for (int i = 0; i < totalSpeedList.Count() - 1; ++i)
                {
                    speedRecordChart.Series["Speed"].Points.AddY(totalSpeedList[i]);
                }

                Console.WriteLine("speedChart : " + totalSpeedList);


            }
            return;

        }

        /*****************************************for button**********/
        Boolean b = true;
        private void button_Resume_Click(object sender, EventArgs e)
        {

            if (b == true)
            {
                button_Resume.Text = "resume";

                //speedRecordChart.Series.ResumeUpdates();
                // serialPort1.Close();
                InitChart();

            }
            else
            {
                button_Resume.Text = "pause";
                // speedRecordChart.Series.SuspendUpdates();


                // serialPort1.Open();
            }


            b = !b;

        }


...