I've read multiple threads on this subject, but none of the ideas had any affect in my program.... But here it is.

After realizing the multiple custom stuff you can do in a listbox, I decided to go custom and have the "ownerdrawn" option to be able to customize my listbox to my liking. And graphically, it's perfect, the only issue is when one is scrolling.

Code:
Private Sub ListBox1_Drawimage(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ListBox1.DrawItem
        Dim align As New StringFormat
        align.Alignment = StringAlignment.Center
        e.DrawBackground()
        If (e.State And DrawItemState.Selected) = DrawItemState.Selected Then
            e.Graphics.FillRectangle(Brushes.LightGreen, e.Bounds)
        End If
        Using b As New SolidBrush(e.ForeColor)
            e.Graphics.DrawString(ListBox1.GetItemText(ListBox1.Items(e.Index)), e.Font, b, e.Bounds, align)
        End Using
        e.Graphics.DrawImage(My.Resources.jbar_png, 1, 365, ListBox1.Size.Width, 100)
    End Sub
(jbar_png, is just an image that is for decoration for the listbox)
Basically, this code for the custom listbox allows the custom doo dads that make my program to act quite perfect to my liking. Again, the issue is when a user scrolls down. The listbox redrawing is very sluggish (almost taking seconds to even show the user selected the next item down) as well because of the sluggish nature of the listbox, there could be multiple instances of jbar_png shown in the program. Currently, the listbox holds ~400 or so items, which is merely some text which is a reference for later use.

If there's anything that'd be able to speed the listbox redrawing ability, please help. I'd like for the listbox to work smoothly and seamlessly if at all possible.


Thanks,
Comake