注意:DataGridViewコントロールは、.NET Framework 2.0で新しく追加されました。
ここでは、指定したセル(およびヘッダー)のフォントを変更する方法を紹介します。セルの値によってフォントを変更する方法については、こちらで説明します。
DataGridView全体(セルとヘッダー)のフォントを変更するには、DataGridView.Fontプロパティを使用します。個々のセルや列、行のフォントを変更するには、セルスタイル(DataGridViewCellStyleオブジェクト)のFontプロパティを使用します。なお、セルスタイルに関する知識の無い方は、まずは「DataGridViewにセルスタイルを設定する」をお読みください。
以下に、現在マウスポインタの下にあるセルを太字にする例を示します。「DataGridViewで指定したセルの色を変更する」で紹介したコードとほぼ同じですので、詳しい説明はそちらをご覧ください。
'デフォルトのセルスタイル 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
//デフォルトのセルスタイル 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; } }