画面に文字列を描画する - C#

画面に文字列を描画するコードを紹介します。

概要

画面に文字列を描画するには、GraphicsオブジェクトのDrawStringメソッドを利用します。
または、TextRendererクラスを利用します。

プログラム例:Graphics.DrawStringを利用する

GraphicsオブジェクトのDrwaStringメソッドを利用して文字列を描画する例です。

UI

下図のフォームを作成します。Panelコントロールを配置します。

コード

以下のコードを記述します。PanelコントロールのPaintイベントを実装します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DrawStringDemo
{
  public partial class FormDrawStringSimple : Form
  {
    public FormDrawStringSimple()
    {
      InitializeComponent();
    }

    private void panel1_Paint(object sender, PaintEventArgs e)
    {
      string drawText = "ぺんぎんクッキー";
      SolidBrush brush = new SolidBrush(Color.Black);
      Font f = new Font("Yu Gothic UI",14);
      e.Graphics.DrawString(drawText, f, brush, 32, 16);
    }
  }
}

解説

画面に描画する文字列です。今回はdrawText変数に代入しています。
  string drawText = "ぺんぎんクッキー";

テキストの描画に利用するブラシを作成します。黒色のブラシを作成し、文字の色は黒色とします。
  SolidBrush brush = new SolidBrush(Color.Black);

テキストの描画に用いるフォントを作成します。今回は"Yu Gothic UI" フォントを利用し、フォントサイズは14とします。
  Font f = new Font("Yu Gothic UI",14);

GraphicsオブジェクトのDrawStringメソッドを呼び出し、文字列を描画します。 Panelコントロールの x=32,y=16 の位置に、drwaText変数の内容(「ぺんぎんクッキー」)を描画します。
DrwaStringメソッドの第一引数に描画する文字列の値、第二引数に描画に利用するFontオブジェクト、第三引数に描画の際の文字色などを決定するBrushオブジェクトを、 第四、第五引数に文字列を描画座標のX,Yを与えます。
  e.Graphics.DrawString(drawText, f, brush, 32, 16);

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。文字列がPanelに描画される動作が確認できます。

プログラム例:TextRendererを利用する

TextRendererを利用して文字列を描画する例です。

UI

下図のフォームを作成します。Panelコントロールを配置します。

コード

以下のコードを記述します。PanelコントロールのPaintイベントを実装します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace TextRendererDemo
{
  public partial class FormTextRendererSimple : Form
  {
    public FormTextRendererSimple()
    {
      InitializeComponent();
    }

    private void panel1_Paint(object sender, PaintEventArgs e)
    {
      string drawText = "ぺんぎんクッキー";
      Font f = new Font("Yu Gothic UI", 14);
      TextRenderer.DrawText(e.Graphics, DrawText, this.Font, new Point(32, 16), Color.Black);
    }
  }
}

解説

画面に描画する文字列です。今回はdrawText変数に代入しています。
  string drawText = "ぺんぎんクッキー";

テキストの描画に用いるフォントを作成します。今回は"Yu Gothic UI" フォントを利用し、フォントサイズは14とします。
  Font f = new Font("Yu Gothic UI", 14);

テキストを画面に描画します。TextRendererクラスのDrawTextメソッドを呼び出します。 最初のパラメーターに描画対象のGraphicsオブジェクトを与えます。2番目のパラメータに描画する文字列、3番目のパラメーターに描画に利用するフォント、 4番目のパラメーターに描画座標の値、5番目のパラメーターに文字の描画色を与えます。
  TextRenderer.DrawText(e.Graphics, DrawText, this.Font, new Point(32, 16), Color.Black);

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。文字列がPanelに描画される動作が確認できます。

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2023-01-24
iPentec all rights reserverd.