【WinForm】チャート作成アプリのチュートリアル

このチュートリアルでは、中級者向けにC#とWinFormを使ったチャート作成アプリを作成します。このアプリを通じて、データの入力と編集、チャートの作成と更新、データの可視化などの技術を学べます。ユーザーはデータを手動で入力し、そのデータを基に棒グラフや折れ線グラフを生成できます。これにより、データを視覚的に表示するアプリケーションの開発スキルが向上します。

1. プロジェクトのセットアップ

  1. Visual Studio を開き、新しい「Windows フォームアプリケーション (.NET Framework)」プロジェクトを作成します。
  2. プロジェクト名を「ChartApp」にします。
  3. Form1の名前をChartFormに変更し、Textプロパティも「チャート作成アプリ」に設定します。

2. 基本的なUIの配置

  1. DataGridView コントロールをフォームに追加し、プロパティを次のように設定します:
    • Name: dataGridView
    • Dock: Top
    • Height: 150
  2. Button コントロールを3つ追加し、それぞれ次のように設定します:
    • Name: addButton, Text: “データ追加"
    • Name: updateButton, Text: “チャート更新"
    • Name: clearButton, Text: “データクリア"
    • それぞれのDock: Bottom
  3. Chart コントロールをフォームに追加し、プロパティを次のように設定します:
    • Name: chart
    • Dock: Fill
  4. ComboBox コントロールを追加し、プロパティを次のように設定します:
    • Name: chartTypeComboBox
    • Items: “Bar", “Line"
    • SelectedIndex: 0
    • Dock: Bottom

3. データ入力とチャート作成の実装

以下のコードを使って、チャート作成アプリの基本ロジックを実装します。

using System;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;

namespace ChartApp
{
    public partial class ChartForm : Form
    {
        public ChartForm()
        {
            InitializeComponent();
            InitializeChartApp();
        }

        private void InitializeChartApp()
        {
            chartTypeComboBox.SelectedIndexChanged += ChartTypeComboBox_SelectedIndexChanged;
            addButton.Click += AddButton_Click;
            updateButton.Click += UpdateButton_Click;
            clearButton.Click += ClearButton_Click;

            // 初期チャート設定
            chart.Series.Clear();
            chart.Series.Add("DataSeries");
            chart.Series["DataSeries"].ChartType = SeriesChartType.Bar;
            chart.ChartAreas.Add(new ChartArea("MainArea"));

            // DataGridViewにデータカラム追加
            dataGridView.Columns.Add("Label", "ラベル");
            dataGridView.Columns.Add("Value", "値");
        }

        private void ChartTypeComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (chartTypeComboBox.SelectedItem.ToString() == "Bar")
            {
                chart.Series["DataSeries"].ChartType = SeriesChartType.Bar;
            }
            else if (chartTypeComboBox.SelectedItem.ToString() == "Line")
            {
                chart.Series["DataSeries"].ChartType = SeriesChartType.Line;
            }
        }

        private void AddButton_Click(object sender, EventArgs e)
        {
            dataGridView.Rows.Add();
        }

        private void UpdateButton_Click(object sender, EventArgs e)
        {
            chart.Series["DataSeries"].Points.Clear();

            foreach (DataGridViewRow row in dataGridView.Rows)
            {
                if (row.Cells["Label"].Value != null && row.Cells["Value"].Value != null)
                {
                    string label = row.Cells["Label"].Value.ToString();
                    double value;
                    if (double.TryParse(row.Cells["Value"].Value.ToString(), out value))
                    {
                        chart.Series["DataSeries"].Points.AddXY(label, value);
                    }
                }
            }
        }

        private void ClearButton_Click(object sender, EventArgs e)
        {
            dataGridView.Rows.Clear();
            chart.Series["DataSeries"].Points.Clear();
        }
    }
}

4. データの入力とチャートの更新

  • 「データ追加」ボタンをクリックすると、新しいデータ行がDataGridViewに追加されます。
  • DataGridViewにラベルと値を入力し、「チャート更新」ボタンをクリックすると、入力したデータをもとにチャートが更新されます。
  • 「チャートタイプ」コンボボックスを使用して、棒グラフと折れ線グラフを切り替えることができます。

5. データのクリアと再入力

「データクリア」ボタンをクリックすると、DataGridViewとチャートの内容がリセットされ、新たにデータを入力できます。

まとめ

この中級チュートリアルでは、データ入力、グラフの作成、チャートの更新、データの可視化といった、より高度なWinForm機能を学びました。このチャート作成アプリケーションを作成することで、データを視覚的に表示するスキルが向上し、ユーザーインターフェースの強化も図れます。

C#

Posted by hidepon