第6章 テキスト表示をもう少し詳しくみてみる


この章では、Graphics.DrawStringメソッドの別バージョンの使い方を見てみます。



DrawStringメソッドには、6つのオーバーロードバージョンがあります。このうち、この章では描画範囲を矩形で指定したバージョンを使ってみます。

public void DrawString (
	string s,
	Font font,
	Brush brush,
	RectangleF layoutRectangle
)
layoutRectangleには、描画する範囲を示すRectangleF構造体を指定します。

RectangleF構造体には、オーバーロードされた2つのコンストラクタがあります。

public RectangleF (
	PointF location,
	SizeF size
)
public RectangleF (
	float x,
	float y,
	float width,
	float height
)
locationは、四角形の左上隅を表すPointF構造体です。PointF構造体はすでに第3章で取り扱っています。この構造体には、次で示すコンストラクタがあります。
public PointF (
	float x,
	float y
)
SizeF構造体のコンストラクタは、
public SizeF (
	float width,
	float height
)
となっています。このほかに2つのオーバーロードバージョンがあります。

publicなプロパティには

public float Width { get; set; } //幅
public float Height { get; set; } //高さ
public bool IsEmpty { get; }
IsEmptyプロパティは、幅と高さが0かどうかを調べます。

では、四角形で描画領域を指定したDrawStringメソッドの例を見てみましょう。

// drawstring02.cs

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

class drawstring02 : Form
{
    public static void Main()
    {
        drawstring02 d2 = new drawstring02();

        Application.Run(d2);
    }

    public drawstring02()
    {
        Text = "猫でもわかるプログラミング";
        BackColor = Color.White;
    }

    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        Graphics g = e.Graphics;
        string str = "今日はよい天気です。\n" +
            "しかし明日もよい天気かどうかはわかりません。" +
            "明日は、明日の風が吹きます。";
        Font ft = new Font("MS ゴシック", 20);
        RectangleF rf = new RectangleF(10F, 10F, 230F, 200F);
        g.DrawRectangle(new Pen(Color.Blue), 10, 10, 230, 200 );
        g.DrawString(str, ft, Brushes.Black, rf); 
    }
}
この例では、DrawStringメソッドの描画領域をはっきりさせるために、Graphics.DrawRectangleメソッドで、描画領域の四角形を描画しています。
public void DrawRectangle (
	Pen pen,
	int x,
	int y,
	int width,
	int height
)
penは描画のためのペンオブジェクト、(x,y)は四角形の左上隅の座標、width,heightは四角形の幅と高さです。(他にもオーバーロードバージョンがあります)

実行結果は、次のようになります。




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

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