DrawString - VB.NET 2005
Jag försöker skriva en funktion som kan rita ut en textrad på olika ställen på skärmen. Denna funktion körs sedan från en loop som ska placera ut texten. Det fungerar förutom att texten bara dyker upp på ett ställe istället för det antal jag valt. Hur ska jag åtgärda detta? Har ni några förslag?
Funktionen:
Public Function DrawItems(ByVal i_Item As Integer, Optional ByVal BorderWidth As Integer = 0, Optional ByVal ShowBorder As Boolean = False)
Dim g As Graphics = Me.CreateGraphics
If ShowBorder Then '// If we are going to show the
Dim myPen As New Pen(Color.Black) '// border, move on to this rutine
myPen.Width = BorderWidth
g.DrawRectangle(myPen, i_LeftMargin, (i_Item * (i_ItemHeight + i_SpaceBetweenItem)), Width, i_ItemHeight)
Dim r As New RectangleF(i_LeftMargin + BorderWidth, (i_Item * (i_ItemHeight + i_SpaceBetweenItem)) + BorderWidth, Width - (BorderWidth * 2), i_ItemHeight - (BorderWidth * 2))
g.FillRectangle(Brushes.White, r)
Else '// No border to our item
Dim rect As New Rectangle(i_LeftMargin, (i_Item * (i_ItemHeight + i_SpaceBetweenItem)), Width, i_ItemHeight)
Dim drawFont As New Font("Tahoma", 12, FontStyle.Bold)
Dim drawFormat As New StringFormat
g.FillRectangle(New SolidBrush(Color.LightSteelBlue), rect)
'// Skriv ut texten på rätt x,y position
drawFormat.Alignment = StringAlignment.Near
drawFormat.Trimming = StringTrimming.EllipsisCharacter
drawFormat.LineAlignment = StringAlignment.Near
g.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAliasGridFit
g.DrawString(m_ItemsPos(i_Item, 2), drawFont, Brushes.Black, (i_LeftMargin + i_ItemPadding), (i_Item * (i_ItemHeight + i_SpaceBetweenItem)) + i_ItemPadding, drawFormat)
'// Rensa upp
drawFont.Dispose()
drawFormat.Dispose()
g.Dispose()
End If
Return True
End Function
For-satsen som ska skriva ut text
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim i As Integer
For i = 0 To 5
Listning1.AddItems(i, "Text " & i, 20, 0, False)
Next
End Sub
All hjälp uppskattas. Har setat och letat efter någon med liknande problem eller en lösning utan något resultat.
/ Marcus