C#を攻略しよう

c#

オーナードロー

オーナードローとは、自分でコントロールを描画する機能のことです。オーナードローを利用して、リストボックスの2行目の文字色を赤に変更するサンプルプログラムを紹介します。

文字色変更  /  フォント変更  /  文字背景色

文字列の一部の文字色変更  /  文字の大きさ

オーナードロー


[TOP]


1.「ファイル」→「新しいプロジェクト」→「WINDOWSアプリケーション」を選択。

2.ツールボックスから「ListBox」を配置する。

3.「DrawMode」プロバティの値を、「OwnerDrawFixed」に変更する。

4.「Form」のイベントから「Load」を選択して、次のコード(黒文字部分)を入力する。

private void Form1_Load(object sender, EventArgs e)
}

    listBox1.Items.Add("りんご");
    listBox1.Items.Add("バナナ");
    listBox1.Items.Add("メロン");
}

メソッドの上にマウスポインタをもってくると、ポップアップヒントが表示されます。またF1キーを押すと、ヘルプが立ち上がります。

5.「listBox1」のイベントから「DrawItem」を探してダブルクリックし、次のコード(黒文字部分)を入力する。

private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
}

    //適切な色で背景を描画する。
    e.DrawBackground();
    string txt = ((ListBox)sender).Items[e.Index].ToString();
    Rectangle rec = e.Bounds;
    Graphics g = e.Graphics;
    Color col = Color.Black;
    //2行目の文字列の色を赤に設定する
    if (e.Index == 1)
    {
        col = Color.Red;
    }
    //文字列を描画する
    TextRenderer.DrawText(g, txt, e.Font, rec, col,TextFormatFlags.Default);
    //フォーカスを示す四角形を描画
    e.DrawFocusRectangle();
}

6.「デバッグ」→「デバッグ開始」または、F5キーを押すと、デバッグとともにプログラムが実行されます。

 

 

※当サイトは、リンクフリーです。