Anvisningar: Ange tabbstopp i ritad text
Du kan ange tabbstopp för text genom att anropa metoden SetTabStops för ett StringFormat-objekt och sedan skicka det StringFormat objektet till metoden DrawString i klassen Graphics.
Obs
System.Windows.Forms.TextRenderer stöder inte att tabbstopp läggs till i ritad text, även om du kan expandera befintliga tabbstopp med hjälp av flaggan TextFormatFlags.ExpandTabs.
Exempel
I följande exempel ställs tabbstopp in vid 150, 250 och 350. Sedan visar koden en lista med namn och testresultat med flikar.
Följande bild visar texten med flikar:
Följande kod skickar två argument till metoden SetTabStops. Det andra argumentet är en matris som innehåller tabbförskjutningar. Det första argumentet som skickas till SetTabStops är 0, vilket anger att den första förskjutningen i matrisen mäts från position 0, den vänstra kanten av avgränsningsrektangeln.
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)
Kompilera koden
- Föregående exempel är utformat för användning med Windows Forms och kräver PaintEventArgs
e
, som är en parameter för PaintEventHandler.
Se även
.NET Desktop feedback