2013-07-24 13 views
2

這裏是一個示例代碼,它隔離我的problem.im試圖從右到左繪製一個字符串..如果我的字符串以數字開頭,然後有逗號與一個字母它重新安排我的字符串..但如果我寫它沒有格式的很好..打開一個新的項目並添加這種形式來看一看吧。謝謝VB.net Graphics.DrawString與DirectionRightToLeft混合我的字符串

Public Class Form1 
    Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint 
     Dim myFont As Font = New Font("Zipper", 24, FontStyle.Bold) 
     Dim myBrush As Brush = Brushes.Black 
     Dim line1 As String = "220516,5130.02,N,00046.34,W,213.8,T,218.0,M,0004.6,N" 
     Dim format As StringFormat = New StringFormat(StringFormatFlags.DirectionRightToLeft) 
     Me.Width = 1400 
     e.Graphics.DrawString(line1, myFont, myBrush, 1300, 0, format) 
     e.Graphics.DrawString(line1, myFont, myBrush, 100, 50) 
    End Sub 
End Class 
+0

RTL用於支持諸如阿拉伯語之類的語言,該語言從右向左運行,而不是從左向右運行。標點符號和數字不會像您期望的那樣簡單。你想達到什麼目的? – bengoesboom

+0

右對齊 – gezzuzz

+0

RTL絕對不是你正在尋找的東西! – bengoesboom

回答

2

嘗試使用Alignment屬性:

Dim format As New StringFormat 
format.Alignment = StringAlignment.Far 

你也沒有處理你的字體對象。爲此,一個簡單的使用支架效果很好:

Using myFont As Font = New Font("Zipper", 24, FontStyle.Bold) 
    Dim myBrush As Brush = Brushes.Black 
    Dim line1 As String = "220516,5130.02,N,00046.34,W,213.8,T,218.0,M,0004.6,N" 
    Dim format As New StringFormat 
    format.Alignment = StringAlignment.Far 
    Me.Width = 1400 
    e.Graphics.DrawString(line1, myFont, myBrush, 1300, 0, format) 
    e.Graphics.DrawString(line1, myFont, myBrush, 100, 50) 
End Using 
+0

謝謝..作品完美! – gezzuzz