感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

C#でフォームを作成して、クリックした数を数えてみる。

スポンサーリンク

準備として、プロジェクト名を右クリックして、プロパティを選択します。そこの「出力の種類」を「Windowsアプリケーション」に設定します。

こんな感じの超シンプルなフォームを作ってみます。

f:id:sho322:20140425080113j:plain

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

class FormSample
{
    public static void Main()
    {
        string title = "フォームのサンプル";
        Form f = new Form();

        //フォームにタイトルを設定する
        f.Text = title;

        //フォームの背景色を設定する
        f.BackColor = Color.CadetBlue;

        //フォームのサイズを設定する
        f.Size = new Size(500, 300);
        Application.Run(f);

    }
}


■イベント駆動の意味
イベントとは、コンピュータで起こった何かしらのアクションのことを指します。
クリックされた、キーボードのキーが押された、マウスのポイントが覆いかぶさった・・・みたいな。
イベントが発生すると、システムからフォームなどに「こういう出来事が起こったぞ!」と、イベントが送られてきます。

で、「こんなイベントが起こったら、こんな処理をする」というようにプログラムを書くのがイベント駆動型のプログラミングです。

クリックした数を数える簡単なプログラムを書いてみます。

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

class FormSample
{
    static int clickCount;
    public static void Main()
    {
        string title = "フォームのサンプル";
        Form f = new Form();

        //フォームにタイトルを設定する
        f.Text = title;

        //フォームの背景色を設定する
        f.BackColor = Color.CadetBlue;

        //フォームのサイズを設定する
        f.Size = new Size(500, 300);

        f.Click += new EventHandler(f_Click);
        f.Paint += new PaintEventHandler(SampleHandler);


        Application.Run(f);

    }
    //イベントハンドラ
    static void SampleHandler(object sender, PaintEventArgs e)
    {
        Graphics g = e.Graphics;
        Font font = new Font("メイリオ", 24);
        g.DrawString("クリックイベントは " + clickCount + " 回発生しました!", font, Brushes.Blue, new PointF(10F, 10F));
    }

    //イベントハンドラ
    static void f_Click(object sender, EventArgs e)
    {
        Form f = (Form)sender;
        clickCount++;
        f.Invalidate();
    }
}

これを実行すると、以下のような画面が現れます。

f:id:sho322:20140425080132j:plain

クリックすると数が増えていきます。

<参考文献>
猫でもわかるWindowsプログラミング C#版 (猫でもわかるシリーズ)
ただの文法だけじゃなくて、C#を使って実践アプリを作るときのはじめの一歩として使えそうな本です。