■68071 / inTopicNo.4) |
Re[3]: DataGridViewの文字列の書式設定について |
□投稿者/ よーすけ (3回)-(2013/09/20(Fri) 11:15:39)
|
あれから自分なりに色々と調べたところ、セルのオーナードローを使うことにより当初の目的を達成できることが分かりました。
どぼんさんの「DataGridViewのセルを自分で描画する」を参考に、とりあえず、以下のコードにて実現することができました。
参考:http://dobon.net/vb/dotnet/datagridview/ownerdrawcell.html
Private Sub DataGridView1_CellPainting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles DataGridView1.CellPainting
If e.ColumnIndex = (対象列インデックス) AndAlso e.RowIndex >= 0 AndAlso _
(e.PaintParts And DataGridViewPaintParts.ContentForeground) = DataGridViewPaintParts.ContentForeground Then
Dim fColor As Color
If (e.PaintParts And DataGridViewPaintParts.SelectionBackground) = DataGridViewPaintParts.SelectionBackground AndAlso _
(e.State And DataGridViewElementStates.Selected) = DataGridViewElementStates.Selected Then
fColor = e.CellStyle.SelectionForeColor
Else
fColor = e.CellStyle.ForeColor
End If
'文字以外が描画されるようにする
Dim paintParts As DataGridViewPaintParts = _
e.PaintParts And Not DataGridViewPaintParts.ContentForeground
'セルを描画する
e.Paint(e.ClipBounds, paintParts)
'文字の描画
'以下の「_dep_id」変数には"東"の文字が入っている
TextRenderer.DrawText(e.Graphics, _
_dep_id & e.Value, _
e.CellStyle.Font, _
e.CellBounds, _
fColor, _
TextFormatFlags.EndEllipsis Or TextFormatFlags.VerticalCenter)
'描画が完了したことを知らせる
e.Handled = True
End If
End Sub
これにて完全解決です。
ありがとうございました。
|
解決済み
|