Permalänk
Medlem

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