2

ここに私の問題を切り分けるサンプルコードがあります.imは文字列を右から左に描画しようとしています..文字列が数字で始まり、文字を含むコンマがある場合、文字列を再配置します..しかし、フォーマットなしで書くと、その結構です..新しいプロジェクトを開き、このフォームを追加して自分で確認してください..ありがとう

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
4

1 に答える 1

3

Alignment プロパティを使用してみてください。

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

また、フォントオブジェクトを破棄していません。そのためには、単純な Using ブラケットがうまく機能します。

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
于 2013-07-24T14:50:25.417 に答える