Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 11.06.2016
Сообщений: 52

Элемент Chart в новой форме

08.06.2019, 05:10. Показов 3907. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, нужна помощь, нужно сделать график Chart в новой форме, что я делаю не так?

В главной форме имеется переменная i значение которой меняется на единицу, то в плюс, то в минус, i нужно вывести в график которая открывается при нажатии кнопки.

C#
1
2
3
4
5
        private void button_grfk_Click(object sender, EventArgs e)
        {
            Form1 График = new Form1(this.i);
            График.ShowDialog();
        }
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
namespace Sampl
{
    public partial class Form1 : Form
    {
        public Form1(int i)
        {
            InitializeComponent();
            this.i = i;
        }
 
        public void chart2_Click(object sender, EventArgs e)
        {
            chart2.Series[0].Points.Add(i, i);
        }
    }
}
Не работает, кто знает подскажите пожалуйста.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.06.2019, 05:10
Ответы с готовыми решениями:

Кнопка для открытия таблицы в текущей форме, НЕ в новой форме
Здравствуйте! Очень прошу помочь по следующему вопросу. Какой код нужно написать на VBA в Access, чтобы при нажатии на кнопку таблица...

Excel chart в форме
Подскажите как быть. Есть форма с обьектом Excel Chart, построение графиков в ктором автоматизировано в VBA. Полученный график нужно...

Обновить chart в другой форме
private void button3_Click(object sender, EventArgs e) { Form2 qwe = new Form2(); //откривается другая форма ...

20
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
08.06.2019, 10:22
Kanat-aga, Это вы чему i присваиваете ?
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
//Первая форма
        private void button1_Click(object sender, EventArgs e)
        {
            var frm2 = new Form2(100);
            frm2.Show();
 
        }
//Вторая
public partial class Form2 : Form
    {
        private int i { get; set; }
 
        public Form2(int i)
        {
            this.i = i;
            InitializeComponent();
            
        }
 
        private void Form2_Load(object sender, EventArgs e)
        {
            chart2.Series[0].Points.Add(i, i);
 
        }
1
0 / 0 / 0
Регистрация: 11.06.2016
Сообщений: 52
08.06.2019, 10:41  [ТС]
Цитата Сообщение от PoPsa85 Посмотреть сообщение
Это вы чему i присваиваете ?
переменной i прибавляется 1 если выполняется одно условие, если другое то отнимается 1. Что то не работает график.
Цитата Сообщение от PoPsa85 Посмотреть сообщение
private int i { get; set; }
вот эту строчку может в главную форму нужно добавить? Спасибо что помогаете.
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
08.06.2019, 10:45
Цитата Сообщение от Kanat-aga Посмотреть сообщение
вот эту строчку может в главную форму нужно добавить?
Нет. Эта строчка должна быть во второй форме, которая с графиком.
Проверил. Рисует график.
Вот тут, в вашей главной форме:
C#
1
2
3
4
5
 private void button_grfk_Click(object sender, EventArgs e)
        {
            Form1 График = new Form1(this.i);
            График.ShowDialog();
        }
Уберите this.i и просто установите число. Думаю там ошибка. Остального кода же нет.
1
0 / 0 / 0
Регистрация: 11.06.2016
Сообщений: 52
08.06.2019, 11:30  [ТС]
Цитата Сообщение от PoPsa85 Посмотреть сообщение
Уберите this.i и просто установите число. Думаю там ошибка. Остального кода же нет.
Все сделал как вы сказали, но не работает. Если график выводить в главной форме, то у меня все работает, но я хотел сделать в новой форме и не получается передать переменную i. Сейчас покажу часть кода все что связано с графиком и переменной i. Весь код очень громоздкий, поэтому думаю нет смысла все выводить тут.

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
namespace Dice.Sample.Bot
{
    public partial class Main : Form
    {
        public Main()
        {
            InitializeComponent();
        }
 
        int i = 0;
 
 if (st_bll > 0m)
                {
                    if (payOut == 0) i--;
                    if (payOut > 0) i++;
                    
                }
 
private void button_grfk_Click(object sender, EventArgs e)
        {
            Form1 График = new Form1(100);
            График.ShowDialog();
        }
    }    
}
Во второй форме
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
namespace Dice.Sample.Bot
{
    public partial class Form1 : Form
    {
        private int i { get; set; }
        public Form1(int i)
        {
            this.i = i;
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            chart1.Series[0].Points.Add(i, i);
        }
    }
}
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
08.06.2019, 11:36
Kanat-aga, Да всё у вас правильно. Приложите сюда проект zip архивом.
0
0 / 0 / 0
Регистрация: 11.06.2016
Сообщений: 52
08.06.2019, 11:50  [ТС]
Цитата Сообщение от PoPsa85 Посмотреть сообщение
Приложите сюда проект zip архивом.
Будьте так любезны посмотрите, архив приложил
Вложения
Тип файла: rar 080619.rar (167.8 Кб, 13 просмотров)
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
08.06.2019, 12:04
Kanat-aga, А теперь тип диаграммы поменяйте на "Column" или просто удалите контрол Chart и заново добавте.
Вы как кривую хотите построить на основе двух значений, i, причем одинаковых ?
0
0 / 0 / 0
Регистрация: 11.06.2016
Сообщений: 52
08.06.2019, 14:18  [ТС]
Цитата Сообщение от PoPsa85 Посмотреть сообщение
А теперь тип диаграммы поменяйте на "Column" или просто удалите контрол Chart и заново добавте.
Вы как кривую хотите построить на основе двух значений, i, причем одинаковых ?
Поменял на Column, удалял и заново добавлял, не работает график. Но ведь строится в главной форме график на основе двух значении i, причем одинаковых, но в новой форме не работает.
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
08.06.2019, 15:11
Kanat-aga, Смотрите в Program.cs
C#
1
2
3
4
5
6
7
8
9
10
11
12
new Login().Show();
//Меняю на 
new Main().Show();
 
В Form1.cs
 private void Form1_Load(object sender, EventArgs e)
        {
            //Main i = new Main();
            //this.i = i;
            chart1.Series[0].Points.Add(i, i);
            System.Diagnostics.Debug.WriteLine("Graph value -> " + i); //Добавил. что бы было видно. что переменная передается
        }
На форме просто удалил контрол. И кинул новый Graph
Миниатюры
Элемент Chart в новой форме  
0
0 / 0 / 0
Регистрация: 11.06.2016
Сообщений: 52
08.06.2019, 15:34  [ТС]
Цитата Сообщение от PoPsa85 Посмотреть сообщение
На форме просто удалил контрол. И кинул новый Graph
Такой график в один столбик и у меня рисует, а он должен меняться.
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
08.06.2019, 15:43
Цитата Сообщение от Kanat-aga Посмотреть сообщение
а он должен меняться.
Вот когда вы ему передадите данные, на основе которых, он будет меняться, тогда и увидите как это выглядит.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        private void Form1_Load(object sender, EventArgs e)
        {
            //Main i = new Main();
            //this.i = i;
            var series = chart1.Series.Add("Тест");
            series.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
            series.Points.AddXY("1", 100);
            series.Points.AddXY("2", 300);
            series.Points.AddXY("3", 800);
            series.Points.AddXY("4", 200);
            series.Points.AddXY("5", 600);
            series.Points.AddXY("6", 400);
            
        }
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
08.06.2019, 15:43
Забыл
Миниатюры
Элемент Chart в новой форме  
0
0 / 0 / 0
Регистрация: 11.06.2016
Сообщений: 52
08.06.2019, 15:53  [ТС]
Цитата Сообщение от PoPsa85 Посмотреть сообщение
Вот когда вы ему передадите данные, на основе которых, он будет меняться, тогда и увидите как это выглядит.
Так это что получается, я должен сам вводить значения для графика?
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
08.06.2019, 15:55
Цитата Сообщение от Kanat-aga Посмотреть сообщение
я должен сам вводить значения для графика
Нет. Я пример со значениями от балды показал. А как они будут передаваться это уже вам реализовывать.
0
0 / 0 / 0
Регистрация: 11.06.2016
Сообщений: 52
08.06.2019, 15:59  [ТС]
Цитата Сообщение от PoPsa85 Посмотреть сообщение
А как они будут передаваться это уже вам реализовывать.
Так вот, у меня есть переменная i которая меняет свое значение и я не знаю как это реализовать в новой форме.
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
08.06.2019, 16:24
Цитата Сообщение от Kanat-aga Посмотреть сообщение
i которая меняет свое значение
Записывайте данные в коллекцию. А потом её передавайте в Chart. Вот так:
C#
1
2
3
4
5
6
7
8
9
10
            var points = new List<int>();
            points.Add(100);
            points.Add(60);
            points.Add(160);
            points.Add(10);
            points.Add(75);
 
            var series = chart1.Series.Add("Тест");
            series.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
            series.Points.DataBindY(points);
0
0 / 0 / 0
Регистрация: 11.06.2016
Сообщений: 52
08.06.2019, 16:36  [ТС]
Цитата Сообщение от PoPsa85 Посмотреть сообщение
Записывайте данные в коллекцию. А потом её передавайте в Chart. Вот так:
Ну тогда он просто нарисует график и остановится, когда закончится список, на момент нажатия на кнопку вызова графика. А мне нужно как то в потоке передавать что ли, не знаю я, что бы график строился всегда пока переменная меняется, а переменная меняется бесконечно.
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
08.06.2019, 16:43
Kanat-aga, у Chart есть метод Update(). Осталось написать функцию, которая в отдельном потоке будет брать из одной формы значения i и обновлять их на второй форме. Если для вас это сложно, оставьте диаграмму на главной форме. Так проще будет.

P.S. Можно через класс передавать значения для графика. а не через конструктор. Реализация есть в ссылке, что я давал.
0
0 / 0 / 0
Регистрация: 11.06.2016
Сообщений: 52
08.06.2019, 17:09  [ТС]
Цитата Сообщение от PoPsa85 Посмотреть сообщение
Реализация есть в ссылке, что я давал
Для меня и это сложно, не могли бы с этим помочь, что в какую форму писать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.06.2019, 17:09
Помогаю со студенческими работами здесь

Переход к новой форме
имею такой код: public partial class Form2 : Form { public Form1 form1 { get; set; } public Form3 form3 { get;...

Таблица в новой форме
Добрый день, хотел бы узнать как можно привязать таблицу к ID? ну например я добавляю/редактирую новую запись (нажимаю на запись 2 раза,...

Обращение к новой форме
Здравствуйте! Есть две формы (Form1, Form2). Form1 должна вызвать Form2. А на Form2 есть два текстовых поля и одна кнопка. Form1 должна...

Редактирования ListBox в новой форме
Помогите. Нужно в новой форме отредактировать выбранную строку с данными из listbox. Данные предаются из формы Stydent в Form1. после...

Копирование элементов на новой форме
В проекте 2 формы. На второй форме есть элемент label. Из первой формы вторую вызываю так: Form2 form = new Form2(); ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru