Kashif Ahmad Khan Ответов: 1

Проблема обновления Livechart (winform и C#)


Привет друзья,
Может ли кто-нибудь помочь мне относительно приведенного ниже кодирования, что это не обновление/загрузка данных на диаграмму.
Значение серии (LineSeries)будет извлекаться из базы данных динамически, ниже приведены только для тестирования/демонстрации...


Я использую элементы управления UserControl для загрузки в основную форму

Я хочу загрузить данные в диаграмму OnForm_Load()

Когда я нажимаю другую вкладку/кнопку, чтобы загрузить другой UserControl, и снова нажимаю Dashoboard, фон диаграммы меняется на черный

Что я уже пробовал:

void getMonthDetails()
        {
            var months = new[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };

            DateTime dt = DateTime.Now;

            int mm = dt.Date.Month;
            int yy = dt.Date.Year;

            string monthsArranged = "";
            for (int i = mm; i <= 11; i++)
            {
                monthsArranged += ("\"" + months[i] + "/" + (yy - 1) + "\", ");
            }

            for (int i = 0; i <= mm - 1; i++)
            {
                monthsArranged += ("\"" + months[i] + "/" + (yy) + "\", ");
            }


            cartesianChart1.Series = new SeriesCollection
            {
                new LineSeries
                {
                    Title = "Book Issued",
                    Values = new ChartValues<double> {504, 813, 895, 402, 687, 895, 467, 1087, 975, 542, 687, 465 }
                },
                new LineSeries
                {
                    Title = "Book Returned",
                    Values = new ChartValues<double> {306, 407, 703, 704, 796, 1023, 745, 685, 535, 1044, 596, 654},
                }
            };

            cartesianChart1.AxisX.Add(new Axis
            {
                Title = "Month",
                Labels = new[] { monthsArranged.TrimEnd(',', ' ') },
                LabelsRotation = 90
            });

            cartesianChart1.AxisY.Add(new Axis
            {
                Title = "Books",
            });

            cartesianChart1.LegendLocation = LegendLocation.Bottom;

        }


      private void UserControl1_Load(object sender, EventArgs e)
      {
            getMonthDetails();
      }

Graeme_Grant

Использование большего размера шрифта жирным шрифтом считается таким же, как и текст во всех заглавных буквах - это крик и считается грубостью. Пожалуйста, исправьте это.

[no name]

Сэр, теперь все в порядке ?

[no name]

Здесь кроется главная проблема....

cartesianChart1.AxisX.Добавить(новую ось
{
Название = " Месяц",
Labels = new[] { monthsArranged.TrimEnd (',', ' ') },
LabelsRotation = 90
});

1 Ответов

Рейтинг:
0

Graeme_Grant

Эта ссылка показывает вам, как это сделать правильно:

Live Charts - пример базовой линейной диаграммы WinForm с кодом[^]


[no name]

Я использовал ту же процедуру/технику, но мои вопросы таковы::
1. мне нужно, чтобы он обновлялся на OnForm_Load (UserControl1_Load), который не загружает и не показывает данные в диаграмме
2. Когда я нажимаю другую вкладку/кнопку (чтобы открыть другой userControl) и пытаюсь снова открыть userControl, имеющий диаграмму, цвет фона диаграммы меняется на черный.

Graeme_Grant

Если вы зайдете на их github, загрузите образец, он запустится. Я не уверен, что вы делаете, чтобы вызвать ваши проблемы.

Я использую версию WPF без каких-либо проблем. Это лежит в основе версии WinForm. Я обычно не работаю над проектами WinForm, поэтому не знаю, насколько надежна хост-версия Winform. [обновление] Вот Winform видео-графики версии, что я писал в начале этого года: WfRollingSD.zip -Google Диск[^]- просто проверено и работает. Вам потребуется для восстановления пакетов NuGet, чтобы построить и запустить.

Лучше всего обратиться к автору контрольной.

[no name]

Хорошо, я сделаю это, но я думал, что здесь будет кто-то, кто сможет мне помочь...
Я не сделал ничего странного, но просто хочу загрузить данные (двенадцать месяцев, месяцы текущего года и предыдущего года)
Спасибо, приятель.....

Graeme_Grant

Только что опубликовал обновленную поправку - это был образец Winform, а не WPF, который я написал. Прочтите выше (следуйте инструкциям), скачайте и попробуйте.