Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2019, 19:05   #1
BrookBond
Пользователь
 
Аватар для BrookBond
 
Регистрация: 08.06.2012
Сообщений: 46
По умолчанию Исчезает объект 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
BrookBond вне форума Ответить с цитированием
Старый 29.08.2019, 22:16   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

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

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

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

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

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

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парсинг Chart - котировки. как получить имя переменной массива. Данные из которого передаются для отрисовки Canvas Chart? Izhic JavaScript, Ajax 2 31.03.2018 13:18
JSON положить объект в объект Dozent Общие вопросы Delphi 7 30.03.2015 12: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 17:37