2
我試圖在details
模式下繪製列表視圖的列標題。繪製ListView列標題分隔符?
此代碼:
Public Sub Me_DrawColumnHeader(ByVal sender As Object, ByVal e As DrawListViewColumnHeaderEventArgs) _
Handles Me.DrawColumnHeader
e.DrawDefault = False ' Set ownerdraw.
e.Graphics.FillRectangle(Brushes.SteelBlue, e.Bounds)
e.DrawText()
End Sub
產生以下:
但我想繪製垂直分割線像Windows那樣:
UPDATE:
我找到了一種方法來吸引他們:
e.Graphics.DrawLine(Pens.Black, e.Bounds.X, e.Bounds.Y, e.Bounds.Left, e.Bounds.Right)
,但似乎不具有相同的錨。
還注意到,我的頭文字太靠近隔離線,也比原來的Windows列表視圖上:
對它們進行比較:
自己:
原創:
這是我用來繪製文本代碼:
e.DrawDefault = False ' Set ownerdraw.
Dim strFormat As New StringFormat()
If e.Header.TextAlign = HorizontalAlignment.Center Then
strFormat.Alignment = StringAlignment.Center
ElseIf e.Header.TextAlign = HorizontalAlignment.Right Then
strFormat.Alignment = StringAlignment.Far
End If
e.Graphics.FillRectangle(New SolidBrush(Color.FromArgb(120, 147, 73)), e.Bounds)
e.Graphics.DrawString(e.Header.Text, e.Font, Brushes.Black, e.Bounds, strFormat)
e.Graphics.DrawLine(Pens.Black, e.Bounds.X, e.Bounds.Y, e.Bounds.Left, e.Bounds.Right)
這是一個靈活的解決方案來定製所有的東西,非常感謝 – ElektroStudios