vb.net 在winform中调整listBox行间距

  在为 winform中,listBox的行间距默认太紧凑,如果要调整,还是比较麻烦的。笔者查询了多种方法,现总结如下。需要两个事件,一个是DrawItem ,另一个是MeasureItem。还需要把listBox的drawMode属性设置为OwerDrawFixed, 即手动模式。
  

‘重新绘制listBox的条目
   Private Sub ListBox1_DrawItem(sender As Object, e As DrawItemEventArgs) Handles ListBox1.DrawItem
        e.DrawBackground()
        e.DrawFocusRectangle()
        Dim difH = (e.Bounds.Height - e.Font.Height) / 2
        '指定绘制文本的位置
        Dim rf As RectangleF = New RectangleF(e.Bounds.X, e.Bounds.Y + difH, e.Bounds.Width, e.Font.Height)
        '绘制指定的字符串
        e.Graphics.DrawString(ListBox1.Items(e.Index).ToString(), e.Font, New SolidBrush(Color.Black), rf)
        'e.Graphics.DrawString(ListBox1.Items(e.Index).ToString(), e.Font, New SolidBrush(e.ForeColor), e.Bounds)
    End Sub
 ’衡量listBox条目的高度
   Private Sub ListBox1_MeasureItem(sender As Object, e As MeasureItemEventArgs) Handles ListBox1.MeasureItem
        e.ItemHeight = 50
    End Sub

你可能感兴趣的:(vb6-net)