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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2015, 18:02   #1
userrrr
Форумчанин
 
Регистрация: 18.10.2014
Сообщений: 119
По умолчанию график по рассчитанным данным

Здравствуйте. Есть программка на C# - форма, несколько текстбоксов с исходными данными, кнопка расчет, кнопка график. По нажатию на кнопку расчет считаются некоторые параметры и выводятся в другие текстбоксы. Например 8 значений в 8 текстбоксах. Это значения по оси Х. По У координаты всегда одни и теже 1000, 3000, 5000, 7000. Как построить график? По нажатию на кнопку график открывается форма. На ней CHART.
Как построить график: по У фиксированные значения, а по Х - те, которые расчитались и вывелись в текстбоксы?
userrrr вне форума Ответить с цитированием
Старый 30.09.2015, 19:20   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Загнать значения из текстбоксов в массив и построить график. Например так
Код:
int[] y_values = new int [] {100, 200, 300};
int[] x_values = new int[] { int.Parse(this.textBox1.Text), int.Parse(this.textBox2.Text), int.Parse(this.textBox3.Text) };
 chart1.Series[0].Points.DataBindXY(x_values, y_values);
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 30.09.2015, 20:06   #3
userrrr
Форумчанин
 
Регистрация: 18.10.2014
Сообщений: 119
По умолчанию

Мысль понятна, но как создать чарт непонятно.
Вот у меня открылась форма, я на ней расположил контрол cyart. Перешел к коду. Этих строк недостаточно.
Ругается на this - говорит неприменимо в текущем контексте и ругается на чарт. Нужно класс наверное создать? Подскажите как. И на Points ругается - пропущена ссылка на сборку.
new DataPoint() и Series.Add() ? А как?

Последний раз редактировалось userrrr; 30.09.2015 в 20:16.
userrrr вне форума Ответить с цитированием
Старый 30.09.2015, 20:20   #4
userrrr
Форумчанин
 
Регистрация: 18.10.2014
Сообщений: 119
По умолчанию

Для chart1 b Points сделал классы...ну и?
userrrr вне форума Ответить с цитированием
Старый 30.09.2015, 20:44   #5
userrrr
Форумчанин
 
Регистрация: 18.10.2014
Сообщений: 119
По умолчанию

Вот код на форме с чарт. Там еще я чужую функцию сщхранения будущего графика подцепил.
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;

namespace Calculation_of_reach
{
    public partial class GraphViewer : Form
    {
        public GraphViewer()
        {
            InitializeComponent();
        }
        


//int[] y_values = new int [] {100, 200, 300};
//int[] x_values = new int[] { int.Parse(this.textBox1.Text), int.Parse(this.textBox2.Text), int.Parse(this.textBox3.Text) };
 //chart1.Series[0].Points.DataBindXY(x_values, y_values);
        private void изображениеToolStripMenuItem_Click(object sender, EventArgs e)
        {
            {
                using (SaveFileDialog sfd = new SaveFileDialog())
                {
                    sfd.Title = "Сохранить изображение как ...";
                    sfd.Filter = "*.bmp|*.bmp;|*.png|*.png;|*.jpg|*.jpg";
                    sfd.AddExtension = true;
                    sfd.FileName = "graphicImage";
                    if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                    {
                        switch (sfd.FilterIndex)
                        {
                            case 1: chart1.SaveImage(sfd.FileName, System.Windows.Forms.DataVisualization.Charting.ChartImageFormat.Bmp); break;
                            case 2: chart1.SaveImage(sfd.FileName, System.Windows.Forms.DataVisualization.Charting.ChartImageFormat.Png); break;
                            case 3: chart1.SaveImage(sfd.FileName, System.Windows.Forms.DataVisualization.Charting.ChartImageFormat.Jpeg); break;
                        }
                    }
                }
            }
        }
    }
}
userrrr вне форума Ответить с цитированием
Старый 30.09.2015, 20:53   #6
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

На одной форме у вас должна быть кнопка которая открывает новую форму с чартом.
Для обработчика этой кнопки пишем
Код:
Form2 f = new Form2(new int[] { int.Parse(textBox1.Text), int.Parse(textBox2.Text), int.Parse(textBox3.Text) }); //создаем форму и в конструкторе передаем нужные данные из текстбоксов
 f.ShowDialog();
В конструкторе для формы с чартом пишем
Код:
public Form2(int[] xVal)
        {
            InitializeComponent();
            int [] yVal = new int[] { 100, 200, 300 };
            this.chart1.Series[0].Points.DataBindXY(xVal, yVal);

        }
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 30.09.2015, 20:54   #7
userrrr
Форумчанин
 
Регистрация: 18.10.2014
Сообщений: 119
По умолчанию

Ага, сейчас попробую.
userrrr вне форума Ответить с цитированием
Старый 30.09.2015, 21:02   #8
userrrr
Форумчанин
 
Регистрация: 18.10.2014
Сообщений: 119
По умолчанию

Не идет...
На форме на которой текстбоксы и кнопка ГРАФИК в обработчик кнопки пишу:
{

GraphViewer f = new GraphViewer(new int[] { int.Parse(textBox1.Text), int.Parse(textBox2.Text), int.Parse(textBox3.Text) });
f.ShowDialog();

}
Дает ошибку:Ошибка 1 "Calculation_of_reach.GraphView er" не содержит конструктор, который принимает аргументы "1" F:\ОД\Calculation of reach\Calculation of reach\od1.cs 401 29 Calculation of reach
userrrr вне форума Ответить с цитированием
Старый 30.09.2015, 21:04   #9
userrrr
Форумчанин
 
Регистрация: 18.10.2014
Сообщений: 119
По умолчанию

А блин, на вторую форму вставил
public GraphViewer (int[] xVal)
{
InitializeComponent();
int [] yVal = new int[] { 100, 200, 300 };
this.chart1.Series[0].Points.DataBindXY(xVal, yVal);

}
скомпелировался...Посмотрим
userrrr вне форума Ответить с цитированием
Старый 30.09.2015, 21:06   #10
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Конструктор GraphViewer должен принимать параметром массив
Код:
public GraphViewer(int[] xVal)
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
в Visual Studio 2008 (C++) в windows Forms построить график по файл-данным графика? sherochka555 Visual C++ 1 03.05.2014 13:39
Затабулировать функцию. график указанной функции и график касательной к ней в точке с абсциссой AntonKalinin01 Помощь студентам 0 26.05.2013 07:18
График сменности (график работы) A1enushka Microsoft Office Excel 2 03.02.2012 18:26
Построениие по данным xJohnx Общие вопросы Delphi 4 23.05.2011 00:02
Доступ к данным buk Microsoft Office Excel 2 11.07.2007 09:44