Nasıl yapılır: Çizilmiş Metinde Sekme Durakları Ayarlama
Bir nesnenin yöntemini çağırarak ve ardından bu nesneyi sınıfın yöntemine aktararak metin için sekme SetTabStops StringFormat StringFormat DrawString durakları Graphics ayarlayın.
Not
, System.Windows.Forms.TextRenderer çizilen metne sekme eklemeyi desteklemez, ancak var olan sekmeyi genişletebilirsiniz bayrağını kullanmayı TextFormatFlags.ExpandTabs durdurur.
Örnek
Aşağıdaki örnek kümeler sekmesi 150, 250 ve 350'de durur. Ardından kod, adların ve test puanlarının sekmeli bir listesini görüntüler.
Aşağıdaki çizimde sekmeli metin gösterilmiştir:

Aşağıdaki kod iki bağımsız değişkeni yöntemine SetTabStops iletir. İkinci bağımsız değişken, sekme uzaklıklarını içeren bir dizidir. geçirilen ilk bağımsız değişken 0'dır. Bu, dizi içindeki ilk uzaklığın sınırlayıcı dikdörtgenin sol kenarı olan 0 konumundan SetTabStops ölçül olduğunu gösterir.
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)
Kod Derleniyor
- Yukarıdaki örnek, Windows Forms ile birlikte kullanım için tasarlanmıştır ve parametresi PaintEventArgs
eolan 'i PaintEventHandler gerektirir.