Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
198 / 93 / 43
Регистрация: 09.11.2019
Сообщений: 414
1

Изменения отображения Chart

16.07.2020, 19:35. Показов 1301. Ответов 3

Author24 — интернет-сервис помощи студентам
Всем привет.

При добавлении легенд, chart в размерах не уменьшается, но уменьшается область, выделенная под график.
Такого счастья мне не надо.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
private void MakeChart(params Series[] graphs)
        {
            if (_chart == null)
            {
                _chart = new Chart();
                _chart.ChartAreas.Add(new ChartArea());
                SetGraphs();               
            }
            else
            {
                SetGraphs();
            }
 
            void SetGraphs()
            {           
                if (graphs.Length > 0)
                {
                    Random rnd = new Random();
                    for (int i = 0; i < graphs.Length; i++)
                    {
                        _chart.Series.Add(graphs[i]);
                        try
                        {
                            _chart.Series[_chart.Series.Count - 1].Name = graphs[i].ToolTip;
                        }
                        catch (ArgumentException)
                        {
                            _chart.Series.Remove(_chart.Series[_chart.Series.Count - 1]);
                            break;
                        }
                        _chart.Legends.Add(new Legend(graphs[i].ToolTip));
                        _chart.Series[_chart.Series.Count - 1].LegendText = graphs[i].ToolTip;
                        graphs[i].ChartType = SeriesChartType.Spline;
                        _chart.PaletteCustomColors = GetColorArray();
                        _chart.Dock = DockStyle.Left;                       
                    }
                }
            }
        }
В вызывающем методе есть следующий код
C#
1
2
3
4
5
6
7
 
                GenerateGraphics(graph, besselFunction);//тут чарт не трогается
                MakeChart(graph);//методы выше
                byte hollow = 8;
                _chart.Size = new Size(tb_order.Location.X - hollow, 0);
                _chart.MouseWheel += new MouseEventHandler(chartData_MouseWheel);
                this.Controls.Add(_chart);
Но это только если изначально chart == null.
Если я просто хочу добавить ещё один график, то выполняется следующий код
C#
1
2
GenerateGraphics(graph, besselFunction);
                MakeChart(graph);
Да и в принципе было бы хорошо подвинуть легенду правее. Понимаю, что это всё где-то в свойствах должно быть зарыто, но так и не смог найти.
Миниатюры
Изменения отображения Chart   Изменения отображения Chart  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.07.2020, 19:35
Ответы с готовыми решениями:

ScrollBar для изменения оси в Chart
Помогите товарищи, я хочу нарисовать график в chart, а после того как я его нарисую, хочу чтоб по...

Работа с Chart. Изменения координат начала
Добрый день! Столкнулась с проблемой. На графике на ОсиХ отображается время суток (с 23 до 0...

Програмное изменение jpg или png изображения, без изменения его отображения
Добрый вечер. Поступила следующая задача. Рандомизовать jpg или png изображения, без изменения его...

Синхронизация отображения изменения данных
Доброго времени суток! Такая проблема. Есть QML окно. На нем висит Endless список (реализован...

3
923 / 503 / 202
Регистрация: 08.10.2018
Сообщений: 1,553
Записей в блоге: 11
16.07.2020, 20:00 2
Легенду можно разместить внизу.
0
198 / 93 / 43
Регистрация: 09.11.2019
Сообщений: 414
16.07.2020, 20:10  [ТС] 3
Цитата Сообщение от ashsvis Посмотреть сообщение
Легенду можно разместить внизу.
Попробовал.
Проблема осталась. При добавлении нового графика, область с графиками ужимается влево.
Миниатюры
Изменения отображения Chart  
0
198 / 93 / 43
Регистрация: 09.11.2019
Сообщений: 414
17.07.2020, 10:12  [ТС] 4
Решение проблемы.
Легенду надо добавлять один раз при создании.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
private void MakeChart(params Series[] graphs)
        {
            if (_chart == null)
            {
                _chart = new Chart();
                _chart.ChartAreas.Add(new ChartArea());
                SetGraphs();               
            }
            else
            {
                SetGraphs();
            }
 
            void SetGraphs()
            {           
                if (graphs.Length > 0)
                {
                    Random rnd = new Random();
                    for (int i = 0; i < graphs.Length; i++)
                    {
                        _chart.Series.Add(graphs[i]);
                        try
                        {
                            _chart.Series[_chart.Series.Count - 1].Name = graphs[i].ToolTip;
                        }
                        catch (ArgumentException)
                        {
                            _chart.Series.Remove(_chart.Series[_chart.Series.Count - 1]);
                            break;
                        }
                        _chart.Legends.Add(new Legend(graphs[i].ToolTip));
                        _chart.Series[_chart.Series.Count - 1].LegendText = graphs[i].ToolTip;
                        graphs[i].ChartType = SeriesChartType.Spline;
                        _chart.PaletteCustomColors = GetColorArray();
                        _chart.Dock = DockStyle.Left;                       
                    }
                }
            }
        }
0
17.07.2020, 10:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.07.2020, 10:12
Помогаю со студенческими работами здесь

Ошибка отображения карт после изменения доменного имени
Привет всем! Сделал сайт http://gecofim.swiss/, после изменения на хостинге доменного имени...

Изменения на главной форме (для отображения всех данных)
Добрый день, форумчане, будьте любезны, помочь в ситуации) Прикрепляю базу данных и принскрин!...

Программа для отображения изменения яркости/громкости на ноутбуке
подскажите программку для отображения изменения яркости/громкости на ноутбуке

Запрет изменения отображения формы при движении по записям
Есть форма Form1. На ней подчиненная форма Form1_1 в режиме таблицы. В коде vba осуществляется...

Разработать программу для расчета изменения тока в цепи и для отображения результата на графике
Здравствуйте. Задали задачу на курсовую работу, а задача для студентов второго курса(я - на...

Написать для трех кнопок общий обработчик OnClick для вывода, скрытия/отображения и изменения цвета текста
На форме Form_Lb расположена пустая метка Lb_txt с текстом и три кнопки класса TButton с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru