9章:ピクチャの描画 : グラフィックスを使用する (C#)

    作成2013.04.12

     VBで作成したプログラムをC#言語に変換します。

  1. 参照元情報
     ピクチャの描画 : グラフィックスを使用するは(Visual Basic ガイド ツアー)
    「ピクチャの描画 : グラフィックスを使用する」にジャンプする
     作成方法の詳細は上記を参照願います。


  2. ピクチャの描画 : グラフィックスを使用するの完成ファイル
     ピクチャの描画 : グラフィックスを使用するの解説とおりに作業を実施すると、VBプロジェクトファイル群が完成しますが、C#言語に変換します。
     完成ファイルは以下からダウンロードできます。
     ダウンロード後は解凍してから使用してください。
      [ ピクチャの描画 : グラフィックスを使用する]をダウンロードする。
     解凍すると「Graphics」フォルダーがあります。
    注(1)「Graphics」フォルダーの「Graphics.sln」ファイルをダブルクリックすると「Express 2012 for Windows Desktop」が起動します。
    注(2)メニューの「ウインド」_「ウインドレイアウトのリセット」で標準に戻ります。
    注(3)「ソリューションエクスプローラ」ウインドウ内の「Form1.cs」をダブルクリックすると「デザイン」が表示されます。
    注(4)メニューの「表示」_「コード」を選択するとコードが表示されます。
    注(5)「Graphics.sln」の動作確認は「デバッグ」_「デバッグ開始」で実行します。デバッグ機能を用いて動作確認を行います。


  3. Graphicsの実行
    (1)「Express 2012 for Windows Desktop」のデバッグ機能を使用します。
    (2)「デバッグ」_「デバッグ開始」を選択します。
    (3)空白の画面が表示されます。
    (4)メニューの「TEST項目」_「直線描画」を選択します。
    (5)直線が表示されます。
    (6)メニューの「TEST項目」_「円と四角」を選択します。
    (7)円と四角が表示されます。
    (8)メニューの「TEST項目」_「文字描画」を選択します。
    (9)文字が表示されます。
    (10)メニューの「TEST項目」_「画像描画」を選択します。
    (11)画像が表示されます。
    (12)クローズボックスでプログラムを終了します。


  4. 新規プロジェクトの作成
    (1)Form1のデザイン設定
     新規プロジェクトを作成すると「デザイナー」にはForm1が自動生成されます。Form1のデザイン設定はVBのForm1のコピー&ペーストで完成します。

    (2) Form1コード
     基本コードが自動生成されます。


  5. Form1の全コード
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    namespace Graphics
    {
        public partial class Form1 : Form
        {
            int M = 1;
            private void Form1_Paint(object sender, PaintEventArgs e)
            {
                e.Graphics.Clear(Color.White);
                switch (M)
                {
                    case 2:
                        e.Graphics.DrawLine(Pens.Black, 0, 50, 400, 50);
                        e.Graphics.DrawLine(Pens.Red, 100, 0, 100, 500);
                        e.Graphics.DrawLine(Pens.Blue, 0, 0, this.Width, this.Height);
                        e.Graphics.DrawLine(Pens.Black, 0, 50, 400, 50);
                        e.Graphics.DrawLine(Pens.Red, 100, 0, 100, 500);
                        e.Graphics.DrawLine(Pens.Blue, 0, 0, this.Width, this.Height);
                        break;
                    case 3:
                        e.Graphics.DrawRectangle(Pens.Green, 10, 50, 200, 150);
                        e.Graphics.DrawRectangle(Pens.Blue, 30, 50, 150, 150);
                        e.Graphics.DrawEllipse(Pens.Red, 10, 150, 150, 250);
                        e.Graphics.DrawEllipse(Pens.Yellow, 20, 50, 250, 125);
                        e.Graphics.FillEllipse(Brushes.Red, 0, 50, 150, 150);
                        e.Graphics.FillRectangle(Brushes.Aquamarine, 31, 51, 148, 148);
                        break;
                    case 4:
                        System.Drawing.Font aFont = new System.Drawing.Font("Arial", 22, FontStyle.Bold);
                        e.Graphics.DrawString("Graphics are fun!", aFont, Brushes.Black, 20, 50);
                        e.Graphics.RotateTransform(45);
                        e.Graphics.DrawString("And exciting too!", aFont, Brushes.Red, 100, 0);
                        break;
                    case 5:
                        e.Graphics.RotateTransform(45);
                        e.Graphics.DrawImage(Graphics.Properties.Resources.Image1, 200, -100);
                        break;
                    default:
                        break;
                }
            }
            public Form1()
            {
                InitializeComponent();
            }
            private void ToolStripMenuItem2_Click(object sender, EventArgs e)
            {
                this.Invalidate();
                M = 2;
            }
            private void ToolStripMenuItem3_Click(object sender, EventArgs e)
            {
                this.Invalidate();
                M = 3;
            }
            private void ToolStripMenuItem4_Click(object sender, EventArgs e)
            {
                this.Invalidate();
                M = 4;
            }
            private void ToolStripMenuItem5_Click(object sender, EventArgs e)
            {
                this.Invalidate();
                M = 5;
            }
        }
    }
    


  6. Form1コードの説明
    (1)private void Form1_Paintイベントルーチン内で描画を行います。
    (2) switch (M){}でびょうがモードを切り替えます。
    (3)e.Graphics.DrawLine(Pens.Black, 0, 50, 400, 50);は黒のラインを描きます。
    (4) private void ToolStripMenuItem2_ClickでM=2を設定し、描画モードを変更します。
    (5)VBとC#のコードは1対1対応で容易に変換できます。



    感想:
    (1)グラフィックスの描画に関しては、VBとC#のコードはほぼ同じで容易に変換できました。







10章:テキスト ファイルからデータを読み取るの作成 (C#)に行く。

トップページに戻る。