Set Tab stop : StringFormat « 2D Graphics « VB.Net Tutorial






Set Tab stop
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Windows.Forms
Imports System.Math

public class SetTabs
   public Shared Sub Main
        Application.Run(New Form1)
   End Sub
End class

public class Form1
  Inherits System.Windows.Forms.Form

  Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
        Dim the_font As New Font("Times New Roman", 15, FontStyle.Regular, GraphicsUnit.Pixel)
        Dim layout_rect As New RectangleF(10, 10, Me.ClientSize.Width - 20, Me.ClientSize.Height - 20)
        Dim string_format As New StringFormat

        Dim tab_stops() As Single = {60, 80}
        string_format.SetTabStops(0, tab_stops)

        e.Graphics.DrawRectangle(Pens.White, Rectangle.Round(layout_rect))
        Dim x As Single = layout_rect.X
        For i As Integer = 0 To tab_stops.Length - 1
            x += tab_stops(i)
            e.Graphics.DrawLine(Pens.White, x, layout_rect.Top, x, layout_rect.Bottom)
        Next i

        Dim rnd As New Random
        Dim txt As String = "A" & vbTab & "BBB" & vbTab & "C" & vbCrLf
        For r As Integer = 1 To 10
            txt &= rnd.Next(10, 99) & vbTab & rnd.NextDouble.ToString("0.000000") & vbTab & rnd.NextDouble.ToString("0.00") & vbCrLf
        Next r

        e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit
        e.Graphics.DrawString(txt, the_font, Brushes.Black, layout_rect, string_format)


  End Sub

  Public Sub New()
   
    MyBase.New()
    Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
    Me.ClientSize = New System.Drawing.Size(292, 273)
    Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen

  End Sub

End Class








17.31.StringFormat
17.31.1.Draw String Layout RectangleDraw String Layout Rectangle
17.31.2.Default String Format FlagsDefault String Format Flags
17.31.3.Set Tab stopSet Tab stop
17.31.4.StringFormat.LineAlignment = StringAlignment.NearStringFormat.LineAlignment = StringAlignment.Near
17.31.5.StringFormat.LineAlignment = StringAlignment.CenterStringFormat.LineAlignment = StringAlignment.Center
17.31.6.StringFormat.LineAlignment = StringAlignment.FarStringFormat.LineAlignment = StringAlignment.Far
17.31.7.StringFormatFlags.NoClipStringFormatFlags.NoClip
17.31.8.StringFormatFlags.LineLimitStringFormatFlags.LineLimit