C# WinFormsで学ぶ Graphics クラス入門

― 線・図形・文字・画像を描画してみよう ―

はじめに

Windowsフォームアプリケーションを作っていると、「画面に図形や文字を直接描きたい!」と思うことがあります。

そのときに活躍するのが Graphics クラス です。

この記事では、Graphics クラスの基本から、実際のコード例までを初心者にも分かりやすく解説します。


Graphics クラスとは?

  • 役割:フォームやコントロール、画像に線・図形・文字・画像を描画するための機能を提供します。
  • 名前空間:System.Drawing に含まれています。
  • 取得方法
    • Paintイベントでの利用(推奨)
private void Form1_Paint(object sender, PaintEventArgs e)
{
    Graphics g = e.Graphics; // 描画用のGraphicsを取得
}
  • CreateGraphics()メソッド(一時的な描画用。再描画時に消えるので注意)

基本の描画メソッド

1. 線を描く

g.DrawLine(Pens.Blue, 10, 10, 200, 10);
  • Pens.Blue:青色のペンを使用
  • (10,10) から (200,10) まで水平線を描画

2. 四角形を描く

// 枠だけ
g.DrawRectangle(Pens.Red, 50, 50, 100, 80);

// 塗りつぶし
g.FillRectangle(Brushes.Green, 50, 150, 100, 80);
  • Pen:線を描く道具
  • Brush:塗りつぶす道具

3. 円や楕円を描く

g.DrawEllipse(Pens.Black, 200, 50, 80, 80);
g.FillEllipse(Brushes.Yellow, 200, 150, 80, 80);

4. 文字を描く

g.DrawString("Hello Graphics!",
             new Font("Arial", 16),
             Brushes.Black,
             new PointF(10, 250));

5. 画像を描く

Image img = Image.FromFile("sample.png");
g.DrawImage(img, 300, 50, 100, 100);

サンプルコード:図形と文字を描くアプリ

以下のコードをコピー&ペーストすれば、そのまま動作します。

(新しい WinForms プロジェクトを作り、Form1.cs に貼り付けてください)

using System;
using System.Drawing;
using System.Windows.Forms;

namespace GraphicsSample
{
    public class Form1 : Form
    {
        public Form1()
        {
            this.Text = "Graphics クラス サンプル";
            this.Size = new Size(400, 300);
            this.Paint += new PaintEventHandler(Form1_Paint);
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;

            // 線
            g.DrawLine(Pens.Blue, 10, 10, 200, 10);

            // 四角形
            g.DrawRectangle(Pens.Red, 50, 50, 100, 80);
            g.FillRectangle(Brushes.Green, 50, 150, 100, 80);

            // 円
            g.FillEllipse(Brushes.Yellow, 200, 50, 80, 80);

            // 文字
            g.DrawString("Hello Graphics!",
                         new Font("Arial", 16),
                         Brushes.Black,
                         new PointF(10, 250));
        }
    }
}

実行すると、線・四角形・円・文字が描かれたシンプルな画面が表示されます。


まとめ

  • Graphics クラスは「画面に描くための筆」
  • Pen は線、Brush は塗りつぶし
  • Paintイベント内で e.Graphics を使うのが基本

これらを押さえると、フォームを「キャンバス」として使い、自分の好きな図形やイラストを描けるようになります。


訪問数 21 回, 今日の訪問数 21回