|
■No6077 (ぽぴ王子 さん) に返信
> こういった努力をしても、Windows のテーマを変更したり、OS を変更したりしたら(例えば XP → Vista とか)
> 全く違う見え方になりかねません。
> ListView がなぜ ListView というコンポーネントとして用意されているかを考えてみるべきでしょう。
確かにListViewの概観にしたいのが目的なら、ListViewを使うのが一番のような気がしてきました…。
この返信を読む前に自己解決しましたので一応コードを載せておきますが、
ListViewを習熟して何とか少ない工数で製造できるようになりたいと思います。
アドバイスありがとうございました!
---
GridColorを白くしてグリッド線を消すのではなく、OwnerDrawでグリッド線を描画しないようにしました。
CellPaintingを以下のように、です。
Dim backColorBrush As New SolidBrush(e.CellStyle.BackColor)
Dim foreColorBrush As New SolidBrush(e.CellStyle.ForeColor)
If e.RowIndex >= 0 Then
If (e.State And DataGridViewElementStates.Selected) = DataGridViewElementStates.Selected Then
foreColorBrush = New SolidBrush(e.CellStyle.SelectionForeColor)
backColorBrush = New SolidBrush(e.CellStyle.SelectionBackColor)
Else
foreColorBrush = New SolidBrush(e.CellStyle.ForeColor)
backColorBrush = New SolidBrush(e.CellStyle.BackColor)
End If
e.Graphics.FillRectangle(backColorBrush, e.CellBounds)
If (e.Value IsNot Nothing) Then
e.Graphics.DrawString(CStr(e.Value), e.CellStyle.Font, foreColorBrush, e.CellBounds.X + 2, e.CellBounds.Y + 2, StringFormat.GenericDefault)
End If
e.Handled = True
End If
|