第2章 フォームにタイトルなどをつける


この章ではFormクラスについて、よく使うプロパティなどについて解説します。



そもそも、FormクラスはObjectクラスを開始点として何代か継承されてきたクラスです。

System.Object
 System.MarshalByRefObject
  System.ComponentModel.Component
   System.Windows.Forms.Control
    System.Windows.Forms.ScrollableControl
     System.Windows.Forms.ContainerControl
      System.Windows.Forms.Form
Formクラスの持つ多数のメンバのうちかなりの部分はControlクラスから継承されてきています。

Formクラスのいくつかのプロパティを見てみましょう。

public override string Text { get; set; }
これは、Control.Textをオーバーライドします。Formクラスではタイトルバーに表示される文字列を取得、設定します。
public override Color BackColor { get; set; }
Control.BackColorをオーバーライドします。コントロールの背景色を取得または設定します。

ここで、Colorは構造体です。構造体について忘れてしまった人は、コンソール編第51章を参照してください。Color構造体のpublicプロパティは、Blueとか、Blackとか大文字で始まる色の名前で、読み出し専用です。

この他に、R,G,Bというプロパティがあります。それぞれこの構造体の赤、緑、青のコンポーネントの値を取得します。

では、タイトルバーににタイトルを設定して、背景色が黄色のフォームを作ってみましょう。

// formprop01.cs

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

class formprop01 : Form
{
    public static void Main()
    {
        formprop01 f1 = new formprop01();

        Application.Run(f1);
    }

    // コンストラクタ
    public formprop01()
    {
        Text = "猫でもわかるプログラミング";
        BackColor = Color.Yellow;
    }
}
メンバにMainメソッドを有するformprop01クラスは、Formクラスから継承されています。 コンストラクタformprop01を見てください。

自分自身のクラスのプロパティTextに「猫でもわかるプログラミング」を設定しています。また、BackColorプロパティにはColor.Yellow(黄色)を設定しています。

これで、タイトルバーに「猫でもわかるプログラミング」と表示され、背景色が黄色のフォームができるはずです。



では、同じ要領でMainメソッドを有しないクラスをFormから派生して同様のことをしてみましょう。

// formprop02.cs

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

class formprop02
{
    public static void Main()
    {
        MyForm mf = new MyForm();
        Application.Run(mf);
        
    }
}

class MyForm : Form
{
    public MyForm()
    {
        Text = "猫でもわかるプログラミング";
        BackColor = Color.Yellow;
    }
}
Mainメソッドを有さないMyFormクラスをFormクラスから派生しています。

このMyFormクラスのコンストラクタで、TextとBackColorプロパティを設定しています。

Mainメソッドでは、MyFormクラスのインスタンスを生成して、Application.Runメソッドに渡しています。

実行結果はformprop01.csの時と全く同じです。

では、次にFormを継承しないでFormクラスのインスタンスを作ってみましょう。

// formprop03.cs

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

class formprop03
{
    public static void Main()
    {
        Form myform = new Form();

        myform.Text = "猫でもわかるプログラミング";
        myform.BackColor = Color.Yellow;

        Application.Run(myform);
    }
}
このプログラムの実行結果も、formprop01.csの時と同じです。

このように、簡単なプログラムであれば、この3つの方法のどれを使っても実現できます。

しかし、第3の方法では後に、ちょっと困ったことも起こるということを覚えておいてください。


[C# フォーム Index] [C# コンソール Index] [総合Index] [Previous Chapter] [Next Chapter]

Update 17/Oct/2006 By Y.Kumei
当ホーム・ページの一部または全部を無断で複写、複製、 転載あるいはコンピュータ等のファイルに保存することを禁じます。