DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

DataGridViewに表示するテキストのフォントを変更する

注意:DataGridViewコントロールは、.NET Framework 2.0で新しく追加されました。

ここでは、指定したセル(およびヘッダー)のフォントを変更する方法を紹介します。セルの値によってフォントを変更する方法については、こちらで説明します。

DataGridView全体(セルとヘッダー)のフォントを変更するには、DataGridView.Fontプロパティを使用します。個々のセルや列、行のフォントを変更するには、セルスタイル(DataGridViewCellStyleオブジェクト)のFontプロパティを使用します。なお、セルスタイルに関する知識の無い方は、まずは「DataGridViewにセルスタイルを設定する」をお読みください。

以下に、現在マウスポインタの下にあるセルを太字にする例を示します。「DataGridViewで指定したセルの色を変更する」で紹介したコードとほぼ同じですので、詳しい説明はそちらをご覧ください。

VB.NET
コードを隠すコードを選択
'デフォルトのセルスタイル
Private defaultCellStyle As DataGridViewCellStyle
'マウスポインタの下にあるセルのセルスタイル
Private mouseCellStyle As DataGridViewCellStyle

'フォームのLoadイベントハンドラ
Private Sub Form1_Load(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.Load
    'デフォルトのセルスタイルの設定
    Me.defaultCellStyle = New DataGridViewCellStyle()
    '現在のセルのセルスタイルの設定
    Me.mouseCellStyle = New DataGridViewCellStyle()
    Me.mouseCellStyle.Font = New Font(DataGridView1.Font, _
        DataGridView1.Font.Style Or FontStyle.Bold)
End Sub

'DataGridView1のCellMouseEnterイベントハンドラ
Private Sub DataGridView1_CellMouseEnter(ByVal sender As Object, _
        ByVal e As DataGridViewCellEventArgs) _
        Handles DataGridView1.CellMouseEnter
    'ヘッダー以外のセル
    If e.ColumnIndex >= 0 And e.RowIndex >= 0 Then
        Dim dgv As DataGridView = CType(sender, DataGridView)
        'セルスタイルを変更する
        dgv(e.ColumnIndex, e.RowIndex).Style = Me.mouseCellStyle
    End If
End Sub

'DataGridView1のCellMouseLeaveイベントハンドラ
Private Sub DataGridView1_CellMouseLeave(ByVal sender As Object, _
        ByVal e As DataGridViewCellEventArgs) _
        Handles DataGridView1.CellMouseLeave
    'ヘッダー以外のセル
    If e.ColumnIndex >= 0 And e.RowIndex >= 0 Then
        Dim dgv As DataGridView = CType(sender, DataGridView)
        'セルスタイルを元に戻す
        'セルスタイルを削除するなら、nullを設定してもよい
        dgv(e.ColumnIndex, e.RowIndex).Style = Me.defaultCellStyle
    End If
End Sub
C#
コードを隠すコードを選択
//デフォルトのセルスタイル
private DataGridViewCellStyle defaultCellStyle;
//マウスポインタの下にあるセルのセルスタイル
private DataGridViewCellStyle mouseCellStyle;

//フォームのLoadイベントハンドラ
private void Form1_Load(object sender, EventArgs e)
{
    //デフォルトのセルスタイルの設定
    this.defaultCellStyle = new DataGridViewCellStyle();
    //現在のセルのセルスタイルの設定
    this.mouseCellStyle = new DataGridViewCellStyle();
    this.mouseCellStyle.Font = new Font(DataGridView1.Font,
        DataGridView1.Font.Style | FontStyle.Bold);
}

//DataGridView1のCellEnterイベントハンドラ
private void DataGridView1_CellEnter(object sender,
    DataGridViewCellEventArgs e)
{
    //ヘッダー以外のセル
    if (e.ColumnIndex >= 0 && e.RowIndex >= 0)
    {
        DataGridView dgv = (DataGridView)sender;
        //セルスタイルを変更する
        dgv[e.ColumnIndex, e.RowIndex].Style = this.mouseCellStyle;
    }
}

//DataGridView1のCellLeaveイベントハンドラ
private void DataGridView1_CellLeave(object sender,
    DataGridViewCellEventArgs e)
{
    //ヘッダー以外のセル
    if (e.ColumnIndex >= 0 && e.RowIndex >= 0)
    {
        DataGridView dgv = (DataGridView)sender;
        //セルスタイルを元に戻す
        //セルスタイルを削除するなら、nullを設定してもよい
        dgv[e.ColumnIndex, e.RowIndex].Style = this.defaultCellStyle;
    }
}

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • イベントハンドラの意味が分からない、C#のコードをそのまま書いても動かないという方は、こちらをご覧ください。
  • .NET Tipsをご利用いただく際は、注意事項をお守りください。