Line を描画する

空のプロジェクトから DrawLine で線を描画します。
線を描画する では自動生成を使いましたが、今回は空のプロジェクトから生成します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プロジェクトの設定

  1. 全ソースコードです。
    プロジェクトのフォルダーに格納して下さい。
    空のプロジェクトの作成は Form を作成する を参照して下さい。
    /********************************************************/
    /*★ Form を継承した MyForm で線を描画する    前田 稔 ★*/
    /********************************************************/
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    
    public class MyForm : Form
    {
        public MyForm()
        {
            Paint += new PaintEventHandler(MyHandler);
        }
    
        private void MyHandler(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            g.DrawLine(new Pen(Color.Red),10,50,280,50);
            g.DrawLine(new Pen(Color.Green,10),10,100,280,100);
        }
    }
    
    class Draw
    {
        public static void Main()
        {
            MyForm mf = new MyForm();
            Application.Run(mf);
        }
    }
    
  2. new MyForm() で Form を継承した MyForm Object Class を生成します。
  3. Application.Run(mf) で MyForm に制御を渡し、メッセージループに入ります。
  4. MyForm では Paint にウインドウを描画するイベントハンドラ(MyHandler)を設定します。
    このようにイベントハンドラに処理を委譲する方法をデリゲート(委譲)と言います。
    Paint += new PaintEventHandler(MyHandler);
  5. MyHandler() で From に Line を描画します。
    1. パラメータ(PaintEventArgs e)を受け取って、Graphics g を設定します。
    2. DrawLine() で Line を描画します。
      座標 10,50 から 280,50 に赤色で線を描画します。
      g.DrawLine(new Pen(Color.Red),10,50,280,50);
      続いて、座標 10,100 から 280,100 に緑色で幅 10 の太い線を描画します。
      g.DrawLine(new Pen(Color.Green,10),10,100,280,100);

【演習】

  1. 座標を変えて描画してみて下さい。
  2. ペンの色や太さを変えて描画してみて下さい。
    ペンは Pen を右クリックして[定義へ移動]で一覧が表示されます。
  3. ペンには、色の設定と太さの設定があります。
    緑色で太さ 10 の線を描画するソースコードです。
    g.DrawLine(new Pen(Color.Green,10f),10,50,280,50);
  4. Graphics クラスには、多数の描画用メソッドが用意されています。
    例えば、DrawLine メソッドは4つのオーバーロードバージョンがあります。
    pt1とpt2、もしくは(x1, y1)と(x2, y2)を結ぶ直線を描画します。
        public void DrawLine(Pen pen, Point pt1, Point pt2)
        public void DrawLine(Pen pen, PointF pt1, PointF pt2)
        public void DrawLine(Pen pen, int x1, int y1, int x2, int y2)
        public void DrawLine(Pen pen, float x1, float y1, float x2, float y2)
        
  5. Point クラスは二次元座標を定義します。
    int 型のコンストラクタは、次のように宣言されています。
    public Point(int x, int y);
  6. 線を使って美しい模様を描画して下さい。

超初心者のプログラム入門(C# Frame Work)