テキストを表示するには、GraphicsクラスのDrawStringメソッドを使います。
DrawStringメソッドは、次のように定義されています。
public void DrawString ( string s, Font font, Brush brush, PointF point )sは表示するテキストです。
指定のFontオブジェクト、Brushオブジェクトで描画されます。
描画位置はPointFオブジェクトで指定します。
他にもオーバーロードバージョンがいくつかあります。
Fontを設定するには、Fontクラスを利用します。Fontクラスは、System.Drawing名前空間で定義されています。複数のオーバーロードコンストラクタが存在しますが、もっとも手頃なのが
public Font ( string familyName, float emSize )でしょう。
familyNameには、フォントファミリを指定します。
emSizeには、サイズ(ポイント)を指定します。
また、Formクラスには、Controlクラスから継承されてきたFontプロパティが存在しますので、これをDrawStringメソッドの引数に使うこともできます。
Brushクラスのオブジェクトを指定するとき、Brushesクラスの静的プロパティがBrushクラスのオブジェクトを返すことを利用すると簡単です。このプロパティは、White, Blueなど色の名前がそのままプロパティになっています。
PointF構造体は、浮動小数点座標(x,y)を表します。コンストラクタは
public PointF ( float x, float y )となっています。
では、最も簡単なテキスト表示のプログラムを見てみましょう。
// drawstring01.cs
using System;
using System.Drawing;
using System.Windows.Forms;
class drawstring01
{
public static void Main()
{
Form f = new Form();
f.Text = "猫でもわかるプログラミング";
f.BackColor = SystemColors.Window;
f.Paint += new PaintEventHandler(MyHandler);
Application.Run(f);
}
static void MyHandler(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
Font f = new Font("MS 明朝", 140);
g.DrawString("猫", f, Brushes.Red, new PointF(10F, 10F));
}
}
Mainクラスをメンバとして持つdrawstring01クラスは、Formクラスから継承されていない点に注意してください。Mainメソッドで、Formクラスのオブジェクトを生成しています。
f.BackColorをSystemColors.Windowで指定している点に注意してください。
SystemColorsクラスの静的プロパティでウィンドウの表示要素の色を取得できます。 Windowプロパティは、クライアント領域の背景色を表すColor構造体を取得します。
次に、PaintイベントにPaintEventHandlerデリゲートでイベントハンドラを関連づけています。
自作イベントハンドラMyHandlerでは、新規にフォントオブジェクトを生成しています。
実行結果は次のようになります。
Update 20/Oct/2006 By Y.Kumei