Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können Tabstopps für Text festlegen, indem Sie die SetTabStops Methode eines StringFormat Objekts aufrufen und dieses Objekt dann an die StringFormat Methode der DrawString Klasse übergebenGraphics.
Hinweis
Das System.Windows.Forms.TextRenderer unterstützt das Hinzufügen von Tabstopps zu gezeichnetem Text nicht, obwohl Sie vorhandene Tabstopps mit dem TextFormatFlags.ExpandTabs Flagge erweitern können.
Beispiel
Im folgenden Beispiel werden Tabstopps auf 150, 250 und 350 festgelegt. Anschließend zeigt der Code eine Registerkartenliste mit Namen und Testergebnissen an.
Die folgende Abbildung zeigt den Text im Registerkartenformat:
Der folgende Code übergibt zwei Argumente an die SetTabStops Methode. Das zweite Argument ist ein Array, das Tabstoppversatze enthält. Das erste Argument, das an SetTabStops übergeben wird, ist 0, was darauf hinweist, dass der erste Offset im Array von Position 0, dem linken Rand des Begrenzungsrechtecks, gemessen wird.
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)
Code kompilieren
- Das obige Beispiel ist für die Verwendung mit Windows Forms konzipiert und erfordert PaintEventArgs
e
, einen Parameter von PaintEventHandler.
Siehe auch
.NET Desktop feedback