libro
www.tuyano.com
初心者のためのC#プログラミング入門

Formを使ってWindowsアプリを作ろう! (2/5)

作成:2013-08-24 10:39
更新:2013-08-24 10:39

■Form利用の基本を覚える

では、作成したコードの内容をポイントごとに説明しておきましょう。


●パッケージの使用
using System;
using System.Drawing;
using System.Windows.Forms;
まず、「using」文が3つ用意されていますね。今まで「using System;」というのは使いました。Consoleクラスがここに入ってましたね。残るSystem.DrawingとSystem.Windows.Formsは、GUIを利用する際の基本となるパッケージだと考えてください。

System.Drawingには画面表示に関連するクラスがまとめられており、System.Windows.FormsにはGUI部品(コントロール)のクラス類がまとめられています。GUI利用の際は、必ずこれらをusingしておく、と考えましょう。


●Labelの作成と設定
Label label = new Label();
label.Text = "Welcome to C#!";
label.Font = new Font("Geneva",18,FontStyle.Regular);
label.Height = 30;
label.Width = 300;
クラスのコンストラクタ(MyFormメソッド)では、「Label」というコントロールを作成しています。このLabelは、テキストを表示するための部品です。new Labelでインスタンスを作成後、さまざまなプロパティ(コントローラの表示や動作などの設定情報を保管するフィールドです)に値を設定しています。ここで設定しているのは以下のものです。

    Text――Labelに表示するテキストです。
    Font――使用するフォントです。これは「Font」クラスのインスタンスを作って設定します。
    Height――Labelの高さ(縦幅)です。
    Width――Labelの横幅です。

ちょっと引っかかるのがFontでしょう。Fontクラスは、newする際にフォントに関する細かな情報を引数指定する必要があります。
new Font( フォント名 , サイズ , スタイル )

    フォント名――テキストで名前を指定
    サイズ――数値でポイント数を指定
    スタイル――FontStyleというオブジェクト(列挙体というものです)に用意されている値を指定

FontStyleは「列挙体」といって、用意されているいくつかの値を指定するのに用いられる特殊な値です。標準のスタイルならばFontStyle.Regular、ボールドならFontStyle.Bold、イタリックはFontStyle.Italicというように値を指定します。


●LabelのFormへの組み込み
this.Controls.Add(label);
作成したコントロール(ここではLabel)は、ただnewでインスタンスを作っただけでは表示されません。コントロールを表示するコンテナ(ウインドウなど部品を配置するもの。ここではForm)に組み込まないといけません。

ここでは「this」というのを使ってますが、これは「インスタンス自身」を示す特別な値です。このMyFormクラスは、Formというウインドウのクラスを継承して作ってますね。そして実際にウインドウを表示するときは、このMyFormのインスタンスを作って操作するわけです。thisは、この「作ったインスタンス自身」を、そのインスタンスの中で指定するのに用いられます。

Formクラスには、自身に組み込んで表示するコントロールをまとめて管理するためのプロパティがあります。それが「Controls」です。これは「コレクション」と一般にいわれるクラスの値が設定されています。コレクションは、オブジェクトをまとめて管理する配列の仲間のようなものです。保管する要素を操作するためのさまざまなメソッドが用意されています。

Add」は、引数に指定したコントロールをControls内に追加するメソッドです。これでControlsにコントロールを追加すると、Formに組み込まれそこにコントロールが表示されるようになります。


●ウインドウサイズの調整
this.Width = 300;
this.Height = 200;
最後に、表示するウインドウ(MyForm)の縦横の大きさをWidthHeightで調整して作業完了です。――いかがですか。ウインドウにテキストを表示する全体的な流れがだいたいつかめたでしょうか。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

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

namespace MyFrmApp
{
    public class MyForm : Form
    {
        public MyForm()
        {
            Label label = new Label();
            label.Text = "Welcome to C#!";
            label.Font = new Font("Geneva",18,FontStyle.Regular);
            label.Height = 30;
            label.Width = 300;
            this.Controls.Add(label);
            this.Width = 300;
            this.Height = 200;
        }
    }
}
※関連コンテンツ

「初心者のためのC#プログラミング入門」に戻る