Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 28.08.2019, 20:05   #1
BrookBond
Пользователь
 
Аватар для BrookBond
 
Регистрация: 08.06.2012
Адрес: Санкт-Петербург
Сообщений: 40
Репутация: 10
По умолчанию Исчезает объект Graphics на графике chart

Всем здравия и понятного кода )

Столкнулся с проблемой:

На графике chart рисую объект стрелку по координатам. В итоге стрелка появляется на секунду примерно (если график сильно приближен, то совсем быстро исчезает) и исчезает. При нажатии на кнопку выполняется функция отрисовки. Что я не так отрисовываю? Подскажите, пожалуйста. Ниже код стрелки.

Код:
 Graphics graphics = chart1.CreateGraphics();
            
            GraphicsPath gp = new GraphicsPath(FillMode.Winding);
                       
            points = new[]
            {
                new PointF((float)chart1.ChartAreas[0].AxisX.ValueToPixelPosition(InPut_point.X - 10),
                (float)chart1.ChartAreas[0].AxisY.ValueToPixelPosition(InPut_point.Y)),
            };
           

            Array.Resize(ref points, points.Length + 7);
                if (_Arrow.Up_Down == "UP")
                {
                    points[1].X = points[0].X - 16;
                    points[1].Y = points[0].Y;
                    points[2].X = points[1].X; 
                    points[2].Y = points[1].Y - 25; 
                    points[3].X = points[2].X - 10; 
                    points[3].Y = points[2].Y; 
                    points[4].X = points[3].X + 18; 
                    points[4].Y = points[3].Y - 20; 
                    points[5].X = points[4].X + 16; 
                    points[5].Y = points[4].Y + 20; 
                    points[6].X = points[5].X - 8; 
                    points[6].Y = points[5].Y; 
                    points[7].X = points[6].X;
                    points[7].Y = points[6].Y; 
                }
                if (_Arrow.Up_Down == "DOWN")
                {
                    points[1].X = points[0].X - 16; 
                    points[1].Y = points[0].Y; 
                    points[2].X = points[1].X; 
                    points[2].Y = points[1].Y + 25; 
                    points[3].X = points[2].X - 10;
                    points[3].Y = points[2].Y; 
                   points[4].X = points[3].X + 18; 
                    points[4].Y = points[3].Y + 20;
                    points[5].X = points[4].X + 16;
                    points[5].Y = points[4].Y - 20; 
                    points[6].X = points[5].X - 8; 
                    points[6].Y = points[5].Y;
                    points[7].X = points[6].X; 
                    points[7].Y = points[6].Y; 
               }

                gp.AddLines(points);
            
            using (SolidBrush brush = new SolidBrush(_Arrow.Color))
                    graphics.FillPath(brush, gp);
            
                gp.Dispose();
Название: 2019-08-28_19-02-39.png
Просмотров: 73

Размер: 5.3 Кб
BrookBond вне форума   Ответить с цитированием
Старый 29.08.2019, 23:16   #2
WorldMaster
Профессионал
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Адрес: Россия, Мурманск
Сообщений: 2,319
Репутация: 705

icq: 359393755
По умолчанию

Ну у вас событие OnPaint вызвалось и перерисовало контрол. Следовательно вам надо сделать новый класс на базе чарта и переопределить метод OnPaint.
__________________
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
Если помог - нажми на весы
WorldMaster вне форума   Ответить с цитированием
Старый 30.08.2019, 10:27   #3
BrookBond
Пользователь
 
Аватар для BrookBond
 
Регистрация: 08.06.2012
Адрес: Санкт-Петербург
Сообщений: 40
Репутация: 10
По умолчанию

Цитата:
Сообщение от WorldMaster Посмотреть сообщение
Ну у вас событие OnPaint вызвалось и перерисовало контрол. Следовательно вам надо сделать новый класс на базе чарта и переопределить метод OnPaint.
Уважаемый WorldMaster! Что это за событие такое OnPaint и кто его вызывает - не в курсе. Это моя первая работа с Graphics . Что значит переопределить метод OnPaint ? И также не понятно "сделать новый класс на базе чарта" . Могли бы Вы еще пару строчек написать, чтоб разобраться с этим окончательно А пример кода, так вообще будет замечательно.
BrookBond вне форума   Ответить с цитированием
Старый 30.08.2019, 11:02   #4
WorldMaster
Профессионал
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Адрес: Россия, Мурманск
Сообщений: 2,319
Репутация: 705

icq: 359393755
По умолчанию

За пару строчек тут не разберешься.
Изучайте матчасть:
тынц, тынц, тынц

Можете поизучать исходники и понять как он работает изнутри
__________________
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
Если помог - нажми на весы
WorldMaster вне форума   Ответить с цитированием
Старый 30.08.2019, 11:37   #5
BrookBond
Пользователь
 
Аватар для BrookBond
 
Регистрация: 08.06.2012
Адрес: Санкт-Петербург
Сообщений: 40
Репутация: 10
По умолчанию

Цитата:
Сообщение от WorldMaster Посмотреть сообщение
За пару строчек тут не разберешься.
Изучайте матчасть:
Хорошо) пару лет поизучаю потом на форуме админом стану!
BrookBond вне форума   Ответить с цитированием
Старый 30.08.2019, 12:30   #6
WorldMaster
Профессионал
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Адрес: Россия, Мурманск
Сообщений: 2,319
Репутация: 705

icq: 359393755
По умолчанию

Цитата:
Сообщение от BrookBond Посмотреть сообщение
Хорошо) пару лет поизучаю потом на форуме админом стану!
А вы как хотите то?? Хотите чтобы ктото за вас сделал? Тогда в раздел фриланс.
__________________
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
Если помог - нажми на весы
WorldMaster вне форума   Ответить с цитированием
Старый 30.08.2019, 13:11   #7
BrookBond
Пользователь
 
Аватар для BrookBond
 
Регистрация: 08.06.2012
Адрес: Санкт-Петербург
Сообщений: 40
Репутация: 10
По умолчанию

Я все прекрасно понимаю, спасибо Вам за ответы!
BrookBond вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парсинг Chart - котировки. как получить имя переменной массива. Данные из которого передаются для отрисовки Canvas Chart? Izhic JavaScript, Ajax 2 31.03.2018 14:18
JSON положить объект в объект Dozent Общие вопросы Delphi 7 30.03.2015 13:57
Как сделать так, чтобы при наведении мышкой на объект, который находится под другим, этот объект выходил на первый план? Zaza7 HTML и CSS 3 17.01.2013 10:23
Объект Graphics в таймере Стремящийся Общие вопросы по Java, Java SE, Kotlin 1 02.12.2012 20:03
Шаблоны - нужно создать объект класса abc в котором вместо aa использовался бы объект класса fff? Farrel Общие вопросы C/C++ 2 13.11.2010 18:37


00:51.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.