私は4つの列を揃えるトラブルを抱えている:タイトルにString.Formatのアライメント
私の文字列の形式が正しく動作します。次の行を読み込んでリストに入れると、String.Formatはビデオ名をとり、ビデオ名の長さに合わせて列を作成します。これをどうすれば解決できますか?
Private Sub pdPrint_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles pdPrint.PrintPage
e.Graphics.DrawString("Movie Collection", New Font("Courier", 20, FontStyle.Bold), Brushes.Black, 300, 10)
e.Graphics.DrawString(String.Format("{0, -20} {1,-20} {2, -20} {3,-20}", "VIDEO NAME", "YEAR PRODUCED", "RUNNING TIME", "RATING"), New Font("Courier", 12, FontStyle.Bold), Brushes.Black, 10, 70)
Using reader As New StreamReader("testing.txt")
Dim intVertPosition As Integer = 90
While Not reader.EndOfStream
Dim videoName As String = reader.ReadLine()
Dim yearProduced As String = reader.ReadLine()
Dim runningTime As String = reader.ReadLine()
Dim rating As String = reader.ReadLine()
Dim extraline As String = reader.ReadLine()
e.Graphics.DrawString(String.Format("{0, -30} {1,30} {2, 30} {3,30}", videoName.ToString(), yearProduced.ToString(), runningTime.ToString(), rating.ToString()), New Font("Courier", 12, FontStyle.Regular), Brushes.Black, 10, intVertPosition)
intVertPosition += 14
End While
End Using
End Sub
あなたは何が間違っているのか説明しませんでしたが、 'String.Format'は文字列内で整列し、テキストエクステントとはあまり関係がありません(大文字と小文字は区別されません)。レポートタイプのように見えるので、それに応じて4〜5列の仮想表を使用して、その中のテキストを正当化することができます。また、文字列に対して 'ToString()'を実行する必要はなく、各行の 'New Font'をリークさせることになります。 – Plutonix
レポートオブジェクトが正しく整列していません。 Guardians of the Galaxyと入力すると、動画名の後に列が作成されます。だから、私がTremorsのような別の映画を入力した場合、 "Video name"の他には全く整列しません。 –
私はテーブルを使用しますが、残念なことに私の割り当てルークックは特にString.Format以外のものを使用するためにポイントをオフにします。 –