다음을 통해 공유


방법: 그린 텍스트에 탭 정지 설정

업데이트: 2007년 11월

StringFormat 개체의 SetTabStops 메서드를 호출한 다음 해당 StringFormat 개체를 Graphics 클래스의 DrawString 메서드에 전달하여 텍스트에 대한 탭 정지를 설정할 수 있습니다.

참고:

System.Windows.Forms.TextRenderer에서 그린 텍스트에 대한 탭 정지를 추가하지 않지만 TextFormatFlags.ExpandTabs 플래그를 사용하여 기존 탭 정지를 확장할 수 있습니다.

예제

아래 예제에서는 150, 250 및 350에 탭 정지를 설정합니다. 그런 다음 코드에서는 이름과 테스트 점수로 이루어진 탭 목록을 표시합니다.

아래 그림에서는 탭 정지가 설정된 텍스트를 보여 줍니다.

글꼴 텍스트

다음 코드에서는 SetTabStops 메서드에 두 개의 인수를 전달합니다. 두 번째 인수는 탭 오프셋이 들어 있는 배열입니다. SetTabStops에 전달된 첫 번째 인수는 0입니다. 이는 배열에서 첫 번째 오프셋이 경계 사각형의 왼쪽 가장자리인 위치 0에서 시작된다는 것을 나타냅니다.

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)

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);

코드 컴파일

참고 항목

작업

방법: GDI를 사용하여 텍스트 그리기

기타 리소스

글꼴 및 텍스트 사용