プログラムコード

Page updated :

The page you are currently viewing does not support the selected display language.

では実際にプログラムのコードを見てみましょう。プログラミング言語として「C#」を使用していますが、C# をある程度知っているものとして説明していきます。分からない場合は C# プログラミングに関しての書籍などが多くありますので、それらを読んで勉強してみてください。他のホームページなどでも結構詳しく説明されているところがありますので、お金が無いというのであれば、そういう場所を探すのもいいでしょう。

ではまず、プログラムの開始ポイントでもある「Program.cs」ファイルを開いてみます。ちなみに C# のコードファイルの拡張子は「.cs」です。開発画面の右にある(使用者によってどこにあるかは異なります)「ソリューション エクスプローラー」を開きます。場合によってはすでに右側にウインドウが固定されている場合もあります。そこから「Program.cs」をダブルクリックしてください。

ソリューション エクスプローラー

ソースエディタが開いたと思います。

ソースエディタ

C# に関しては各自勉強してもらったほうがいいのですが、とりあえずこの Tips で出てくるコードを簡単に説明したいと思います。


using System;
using System.Collections.Generic;
using System.Windows.Forms;

クラスは必ずどこかのネームスペース内に記述されることになっています。例えば、ファイルを扱うクラス「File」クラスは「System」ネームスペース内のさらに「IO」ネームスペース内に含まれています。通常「File」クラスを使用するには、「System.IO.File」という風にすべてのネームスペースと最後にクラス名を記述しなければなりません。

System.IO.File f;

しかし、あらかじめ「using」ステートメントを使用して登録しておけば、実際に「File」クラスを使用する際にネームスペースを省略できるようになります。

using System.IO;
File f;

namespace Sample

ネームスペースと呼ばれるものです。すべての実行処理プログラムはこの中に記述します。ネームスペースの名前は作成したプロジェクト名と同じようになります。もし気に入らなければ後で変えることもできます。


static class Program

クラス名です。「class」の右側にある名前がクラス名になります。基本的にファイル名とクラス名は一緒にしたほうがわかりやすいです。「class」の左側にある「static」については通常必要ありませんが、この「Program」クラスではつけておくという風に考えててください。


/// <summary>
/// アプリケーションのメイン エントリ ポイントです。
/// </summary>
[STAThread]
static void Main()
{
  Application.EnableVisualStyles();
  Application.SetCompatibleTextRenderingDefault(false);
  Application.Run(new Form1());
}

ここが実際に処理が開始する場所です。上3行はコメントなので無視してください。実際の処理とは関係ありません。「[STAThread]」は実際必要ない場合もありますが、わからない人はそのままつけていたほうが無難です。次の行の「static void Main()」はメソッドの頭です。これもよっぽどのことがない限りはそのままにしてください。このメソッドからプログラムが実行されます。

「Application.EnableVisualStyles();」はフォームに配置するコントロールをXPのスタイルにする場合は記述します。昔のコントロール風にする場合に限り、この行をはずします。基本的にはこのままにしてください。「Application.SetCompatibleTextRenderingDefault(false);」はコントロールのテキスト描画に関係するものなのですが、基本的にそのままでかまいません。「Application.Run(new Form1());」で実際にアプリケーションを走らせます。ここでは「Form1」というフォームクラスをトップレベルウインドウとして実行します。「Form1」というのは先ほど「デバッグ実行」で表示させたウインドウのクラスです。


では、その「Form1」クラスを見てみましょう。ソリューションエクスプローラーで「Form1.cs」ファイルを右クリックして「コード表示」で表示させます。

Form1 コードの表示

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Sample
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }
  }
}

「Form1」クラスで記述されているコードは基本的にこれだけです。「Program」クラスと違う部分だけを解説します。


public partial class Form1 : Form

「public」はクラスを作成したときに必ずつけるものだと考えておいてください(場合によって変えられます)。クラスは基本的に「公開」することがほとんどなのでつけておきます。「partial」はクラスを複数のファイルに分割するときに使用します。これもフォームを作成するクラスでは必須です。一番後ろについている「Form」は「System.Windows.Forms」ネームスペースに属しているクラスです。上記コードで「using System.Windows.Forms;」と記述されているために簡略して「Form」と記述しています。クラス名「Form1」の後に「: Form」とつけている場合は「Form クラスを継承した Form1 クラス」という意味になります。フォームを作成しているクラスは基本的にこの形になるものだと覚えてください。


public Form1()
{
  InitializeComponent();
}

一応メソッドですがこれは「コンストラクタ」と呼ばれるものです。メソッドの名前がクラス名と必ず同じになります。コンストラクタはクラスを作成した直後に必ず実行されます。前述の「Program」クラスで「Application.Run(new Form1());」という処理で「new」演算子を使用して「Form1」クラスを作成しています。そのため、このコンストラクタは必ず実行されるということになります。さて、コンストラクタの中には「InitializeComponent()」メソッドが実行されています。「Form1」クラスのコードはこれだけという風に言いましたが、実はこのクラスは2つのファイルに分かれています。ソリューションエクスプローラーで「Form1.cs」ファイルの横に「+」ボタンがあるので押してみてください。

Form1 の別のファイル

「Form1.Designer.cs」ファイルというものが出てきました。実は「InitializeComponent」メソッドの本体はこのファイル内に記述されています。

そもそも「InitializeComponent」メソッドはどんな処理を行っているのかというと、「Form1」クラスの「デザイナ」画面で設定したデータを、実際にプログラムで処理する内容に置き換えたものが記述されます。なので「デザイナ」画面でプロパティなどを変更すると、リアルタイムで「Form1.Designer.cs」ファイル内のコードが書き換えられていきます。つまり、プログラマが直接コードを編集しなくてもいいようにクラスが2つのファイルに分けられているのです。よって、細かなコードを見る必要が無いため、このように編集すべきファイルのコードは非常に簡潔にまとめることができるのです。これは「C# 2.0」ならではの利点になります。「C# 1.0」では残念ながらこの機能はありません。私が「C# 2.0」を進める理由のひとつがこれにあたります。(ちなみに C# 1.0 は Visual Studio 2002, 2003, C# 2.0 は Visual Studio 2005 が標準となっています)

「Form1.Designer.cs」の中身を見たい人はダブルクリックして見てみるといいでしょう。意外と参考になるかと思います。場合によってはこちらを編集する必要があるかもしれないので、見ておいて損はありません。


プロジェクト作成直後のコードの説明が終わりました。では少し設定を変えましょう。

プロジェクトを作成したあとのフォーム名(クラス)は必ず「Form1」になっています。多分これが気に入らないという人も少なからずいると思うので、名前を変えてしまいましょう。メインのウインドウとなるので「MainForm」としてみます。

まず、ソリューションエクスプローラーから、「Form1.cs」を右クリックして「名前の変更」をクリックします。

名前の変更

名前が変更できるようになるので、「MainForm.cs」と書き換えます。

MainForm

下のようなダイアログが表示されるので、「はい」のボタンを押してください。(出ない場合もあります。その場合はリファクタなどで手動変更する必要があります)

名前変更確認

すると、「Form1」に関係していたものが全て「MainForm」という名前に変わります。クラス名も全て変わります。簡単ですね。

全て名前変更