Cara: Mengatur Perhentian Tab dalam Teks Yang Digambar
Anda dapat mengatur perhentian tab untuk teks dengan memanggil SetTabStops metode StringFormat objek lalu meneruskan StringFormat objek tersebut ke DrawString metode Graphics kelas.
Catatan
System.Windows.Forms.TextRenderer tidak mendukung penambahan perhentian tab ke teks yang digambar, meskipun Anda dapat memperluas perhentian tab yang ada menggunakan TextFormatFlags.ExpandTabs bendera.
Contoh
Contoh berikut mengatur tab berhenti pada 150, 250, dan 350. Kemudian, kode menampilkan daftar nama bertab dan skor pengujian.
Ilustrasi berikut ini memperlihatkan teks bertab:
Kode berikut meneruskan dua argumen ke SetTabStops metode . Argumen kedua adalah array yang berisi offset tab. Argumen pertama yang diteruskan SetTabStops adalah 0, yang menunjukkan bahwa offset pertama dalam array diukur dari posisi 0, tepi kiri persegi panjang pembatas.
string text = "Name\tTest 1\tTest 2\tTest 3\n";
text = text + "Joe\t95\t88\t91\n";
text = text + "Mary\t98\t84\t90\n";
text = text + "Sam\t42\t76\t98\n";
text = text + "Jane\t65\t73\t92\n";
FontFamily fontFamily = new FontFamily("Courier New");
Font font = new Font(
fontFamily,
12,
FontStyle.Regular,
GraphicsUnit.Point);
Rectangle rect = new Rectangle(10, 10, 450, 100);
StringFormat stringFormat = new StringFormat();
SolidBrush solidBrush = new SolidBrush(Color.FromArgb(255, 0, 0, 255));
float[] tabs = { 150, 100, 100, 100 };
stringFormat.SetTabStops(0, tabs);
e.Graphics.DrawString(text, font, solidBrush, rect, stringFormat);
Pen pen = Pens.Black;
e.Graphics.DrawRectangle(pen, rect);
Dim myText As String = _
"Name" & ControlChars.Tab & _
"Test 1" & ControlChars.Tab & _
"Test 2" & ControlChars.Tab & _
"Test 3" & ControlChars.Cr
myText = myText & "Joe" & ControlChars.Tab & _
"95" & ControlChars.Tab & _
"88" & ControlChars.Tab & _
"91" & ControlChars.Cr
myText = myText & "Mary" & ControlChars.Tab & _
"98" & ControlChars.Tab & _
"84" & ControlChars.Tab & _
"90" & ControlChars.Cr
myText = myText & "Sam" & ControlChars.Tab & _
"42" & ControlChars.Tab & _
"76" & ControlChars.Tab & _
"98" & ControlChars.Cr
myText = myText & "Jane" & ControlChars.Tab & _
"65" & ControlChars.Tab & _
"73" & ControlChars.Tab & _
"92" & ControlChars.Cr
Dim fontFamily As New FontFamily("Courier New")
Dim font As New Font( _
fontFamily, _
12, _
FontStyle.Regular, _
GraphicsUnit.Point)
Dim rect As New Rectangle(10, 10, 450, 100)
Dim stringFormat As New StringFormat()
Dim solidBrush As New SolidBrush(Color.FromArgb(255, 0, 0, 255))
Dim tabs As Single() = {150, 100, 100, 100}
stringFormat.SetTabStops(0, tabs)
e.Graphics.DrawString(myText, font, solidBrush, RectangleF.op_implicit(rect), stringFormat)
Dim pen As Pen = Pens.Black
e.Graphics.DrawRectangle(pen, rect)
Mengompilasi Kode
- Contoh sebelumnya dirancang untuk digunakan dengan Formulir Windows, dan memerlukan PaintEventArgs
e
, yang merupakan parameter dari PaintEventHandler.
Lihat juga
.NET Desktop feedback