пожалуйста,
как нарисовать изображение в событии listbox_DrawItem с левой стороны
я уже прочитал этот код , но мне это не помогает
Dim targetsize As New Size(16, 16)
Dim img As Image = Nothing
img = My.Resources._error
e.Graphics.DrawImage(img, targetsize)
e.Graphics.DrawString(lsbLog.Items(e.Index).ToString(), _
e.Font, mybrush, e.Bounds, StringFormat.GenericDefault)
это мой текущий код
РЕДАКТИРОВАТЬ
я добавил ваш код с другим кодом, и я получил искаженный текст
эточасть кода в событии DrawItem
'//Here it draws the border depeding on it's state (the listbox item)
e.Graphics.DrawRectangle(myPen, e.Bounds.X + 16, e.Bounds.Y, _
e.Bounds.Width - 16, e.Bounds.Height)
Using b As New SolidBrush(e.ForeColor)
e.Graphics.DrawString(lsbLog.GetItemText(lsbLog.Items(e.Index)), e.Font, b, e.Bounds)
End Using
e.Graphics.DrawImage(img, New Rectangle(e.Bounds.Width - 15, e.Bounds.Y, 12, 12))
'// Draw the current item text based on the current
'// Font and the custom brush settings.
e.Graphics.DrawString(lsbLog.Items(e.Index).ToString(), e.Font, mybrush, _
New Rectangle(e.Bounds.X - 20, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height), _
StringFormat.GenericDefault)
Это код в событии MeasureItem
Private Sub lsbLog_MeasureItem(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MeasureItemEventArgs) Handles lsbLog.MeasureItem
Dim g As Graphics = e.Graphics
'We will get the size of the string which we are about to draw,
'so that we could set the ItemHeight and ItemWidth property
Dim size As SizeF = g.MeasureString(lsbLog.Items.Item(e.Index).ToString, Me.Font, _
lsbLog.Width - (5 + SystemInformation.VerticalScrollBarWidth))
e.ItemHeight = CInt(size.Height) + 5
e.ItemWidth = CInt(size.Width) + 5
End Sub
Я получаю искаженный текст и изображение