Windows Forms 프로젝트가 있습니다. 양식에 txt라는 텍스트 상자가 있습니다. 작업은 사용자의 문자열을 두 개의 열에있는 textBox 구문 분석 텍스트에 작성하는 것입니다. 각 열에는 왼쪽 정렬이 있어야합니다. 다음은 예입니다 :Windows Forms TextBox 버그?
--------------------------
Parameters Values
height 36
width 72
length of trousers 32
--------------------------
각 값은 다른 아래 하나 서있다. 분명히 우리는 각 매개 변수 다음에 필요한 수의 공백을 입력하는 메서드가 필요합니다.
: 나는 예상치 못한 사진이
string report = Environment.NewLine + "-------------" + DateTime.Now +
"-------------" + Environment.NewLine +
"Вихідні дані:" + Environment.NewLine +
"a:" +
AddSpaces("a:") +
"1" +
Environment.NewLine +
"ab:" +
AddSpaces("ab:") +
"1" +
Environment.NewLine +
"abcdefg:"+
AddSpaces("abcdefg:") +
"1" +
Environment.NewLine;
그리고
txt.Text += report;
을 한 후 : 나는 다음과 같은 문자열을 사용하여이 방법을 테스트 한
private string AddSpaces(string str)
{
const int MAX_WIDTH = 50;
// We've got a 50 symbols field to fill it with current parameter
// name and add necessary number of spaces.
StringBuilder strWithSpaces = new StringBuilder();
int numOfSpaces = MAX_WIDTH - str.Length;
for (int i = 0; i < numOfSpaces; i++)
{
strWithSpaces.Append(" ");
}
return strWithSpaces.ToString();
}
:이 방법을 개발했습니다 TextBox Output
그 후 테스트 문자열을 파일로 작성하려고했습니다. 여기서 결과는 다음과 같습니다 파일
OUPUT가 올바른지. 텍스트 상자의 출력이 잘못되었습니다. textBox에 문제가 있습니다. 이 문제를 해결하는 방법? 여기 내 테스트 프로젝트의 코드입니다 :
/*
Correct output looks like this:
a: 1
ab: 1
abcdefg: 1
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace spaces
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string report = Environment.NewLine + "-------------" + DateTime.Now +
"-------------" + Environment.NewLine +
"Вихідні дані:" + Environment.NewLine +
"a:" +
AddSpaces("a:") +
"1" +
Environment.NewLine +
"ab:" +
AddSpaces("ab:") +
"1" +
Environment.NewLine +
"abcdefg:" +
AddSpaces("abcdefg:") +
"1" +
Environment.NewLine;
txt.Text += report;
using (StreamWriter outfile =
new StreamWriter(@"D:\test.txt"))
{
outfile.Write(report);
}
}
private string AddSpaces(string str)
{
const int MAX_WIDTH = 50;
StringBuilder strWithSpaces = new StringBuilder();
int numOfSpaces = MAX_WIDTH - str.Length;
for (int i = 0; i < numOfSpaces; i++)
{
strWithSpaces.Append(" ");
}
return strWithSpaces.ToString();
}
}
}
대단히 감사합니다. 귀하의 설명이 많은 도움이되었습니다. –