На этом шаге мы рассмотрим пример использования этого компонента.
Начиная с этого шага, мы вернемся к рассмотрению компонентов, входящих в среду программирования Microsoft Visual C++.
Компонент Chart предназначен для вывода в экранную форму графика (диаграммы). Очень удобно строить этот график по табличным данным, представленным в виде объекта класса DataTable.
В приведенном ниже примере решим следующую задачу. Даны сведения об объемах продаж за пять месяцев. Требуется наглядно визуализировать эти данные на графике в виде гистограммы.
Для решения этой задачи запустим расположим на форме следующие элементы: диаграмму Chart и сетку данных DataGridView (рисунок 1).

Рис.1. Форма на этапе приложения
Для наглядности мы хотим, чтобы при щелчке мышью на графике он менял свой внешний вид, а именно, чтобы столбики гистограммы отображались в виде цилиндров.
Обработчики, решающие указанную задачу, приведены ниже.
. . . . .
}
#ragma endregion
Boolean Cilindr;
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
Cilindr = false;
this->Text = "Щелкните на графике";
DataTable ^ Table = gcnew DataTable();
// В этой таблице заказываем две колонки "Месяц" и "Объем продаж":
Table->Columns->Add("Месяц", String::typeid);
// В C#: Таблица.Columns.Add("Месяц", typeof(String));
// Значения во второй колонке назначаем типа long:
Table->Columns->Add("Объем продаж", long::typeid);
// В C#: Таблица.Columns.Add("Объем продаж", typeof(long));
// Заполняем первую строку (ряд) в таблице:
DataRow ^ Row = Table->NewRow();
Row["Месяц"] = "Май"; Row["Объем продаж"] = 15;
Table->Rows->Add(Row);
// Добавляем вторую строку в таблице:
Row = Table->NewRow();
Row["Месяц"] = "Июнь"; Row["Объем продаж"] = 35;
Table->Rows->Add(Row);
// Добавляем третью строку:
Row = Table->NewRow();
Row["Месяц"] = "Июль"; Row["Объем продаж"] = 65;
Table->Rows->Add(Row);
// Добавляем четвертую строку:
Row = Table->NewRow();
Row["Месяц"] = "Авг"; Row["Объем продаж"] = 85;
Table->Rows->Add(Row);
// Добавляем пятую строку:
Row = Table->NewRow();
Row["Месяц"] = "Сент"; Row["Объем продаж"] = 71;
Table->Rows->Add(Row);
// Составленную таблицу указываем в качестве источника данных:
chart1->DataSource = Table;
// На одном графике можно изобразить несколько зависимостей.
// Например, первая зависимость - объемы продаж по указанным
// месяцам в 2020 году, и вторая зависимость - продажи по
// тем же месяцам в 2021 году.
// В данном графике мы покажем только одну зависимость, данные
// для отображения этой зависимости назовем "Series1"
// По горизонтальной оси откладываем названия месяцев:
chart1->Series["Series1"]->XValueMember = "Месяц";
// А по вертикальной оси откладываем объемы продаж:
chart1->Series["Series1"]->YValueMembers = "Объем продаж";
// Название графика (диаграммы):
chart1->Titles->Add("Объемы продаж по месяцам");
// Задаем тип диаграммы - столбиковая гистограмма:
chart1->Series["Series1"]->ChartType = System::Windows::Forms::
DataVisualization::Charting::SeriesChartType::Column;
// Тип диаграммы может быыть другим, например: Pie, Line и др.
chart1->Series["Series1"]->Color = Color::Aqua;
// Легенду на графике не отображаем:
chart1->Series["Series1"]->IsVisibleInLegend = false;
// Приязка графика к источнику данных:
chart1->DataBind();
// Для сетки данных указываем источник данных
dataGridView1->DataSource = Table;
}
private: System::Void chart1_Click(System::Object^ sender, System::EventArgs^ e) {
// Обработка события "щелчок на графике"
Cilindr = !Cilindr;
// Изображение столбиков гистограммы в виде цилиндра:
if (Cilindr == true)
chart1->Series["Series1"]["DrawingStyle"] = "Cylinder";
else
chart1->Series["Series1"]["DrawingStyle"] = "Default";
}
. . . . .

Рис.1. Результат работы приложения (результат щелчка на графике)
В программном коде при обработке события загрузки формы объявляем объект Table класса DataTable. Этот объект представляет одну таблицу данных в оперативной памяти. Чтобы визуализировать эту таблицу на экране, используют компонент — сетка данных DataGridView. Объект класса DataTable используют в качестве исходных данных и для сетки данных DataGridView, и для диаграммы Chart.
В таблице DataTable определяем ее схему, заказывая две колонки «Месяц» и «Объем продаж». А далее заполняем таблицу по ее строкам (рядам), используя метод Add. Заполненную пятью строками таблицу указываем в качестве источника данных для компонентов Chart и DataGridView. Далее оформляем внешний вид диаграммы, что подробно представлено в приведенных комментариях.
На следующем шаге мы продолжим изучение этого вопроса.