2017-12-29 45 views
-1

텍스트 상자에 텍스트를 입력하면 인쇄 할 때 텍스트를 새 줄 (한 줄에 7 자)로 나누고 싶습니다.프린터로 보낼 때 C#의 텍스트 상자에서 줄 바꿈하는 방법

코드는 내가 무엇을 할 것인가

e.Graphics.DrawString(textBox24.Text, 
         new Font("Arial", 12, FontStyle.Regular), 
         Brushes.Black, 
         new Point(32, 260)); 

아래에 주어진?

+3

7 번째 문자마다 'Environment.NewLine'을 삽입 하시겠습니까? – oerkelens

+0

코드를 설명해 주시겠습니까? –

+0

다음 코드는 무엇입니까? 코드? – oerkelens

답변

0

각 7자를 나누고 oerkelens가 제안한대로 Environment.NewLine을 삽입하십시오.

public string GetPrintReadyString(string originalString) 
{ 
    string result = "" 
    for (var i = 0; i < originalString.Length; i += 7) 
     result += (originalString.Substring(i, Math.Min(7, originalString.Length - i)) + Environment.NewLine); 
    return result; 
} 

그런 다음 당신은 당신의 문자열에 전달하여이 메서드를 호출 할 수 있습니다 : 당신의 캐릭터가 사용자의 입력에서 온다

e.Graphics.DrawString(GetPrintReadyString(textBox24.Text), 
         new Font("Arial", 12, FontStyle.Regular), 
         Brushes.Black, 
         new Point(32, 260)); 

는 예외 처리를 잊지 마세요.

편집 : 정말 정말 정말 다음으로 textBox24.Text을 대체 한 줄에 원하는 경우

string.Join("", textBox24.Text.Select((c, i) => i > 0 && i % 7 == 0 ? string.Format(Environment.NewLine + c) : c.ToString())) 
+0

한 줄로 된 이유는 무엇입니까? 예외 처리가 필요하지 않니? – Bart

+0

의견을 보내 주셔서 감사합니다. 귀하의 코드에 의해 답변을 얻었습니다. –

1

당신이 뭔가를 할 수있다;

e.Graphics.DrawString(FormatText(textBox24.Text), 
         new Font("Arial", 12, FontStyle.Regular), 
         Brushes.Black, 
         new Point(32, 260)); 

이 방법을 사용하는. 7 번째 문자마다 새 줄을 삽입하는 입력 된 문자열을 반복합니다.

public string FormatText(string input) 
{ 
    string returnText = ""; 
    int charCounter = 0; 
    foreach(char c in input) 
    { 
     result += c; 
     i++; 
     if(i == 7) 
     { 
      result += Environment.NewLine; 
      charCounter=0; 
     } 
    } 
    return returnText; 
}