2017-02-26 4 views
0

의 섹션 업데이트 나는 라벨 프린터를 통해 인쇄 될 매우 간단한 주문 양식을 작성 중입니다. 어떤 항목이 추가되었는지 그리고 얼마나 많은 항목을 추가했는지 표시하려면 richTextBox이 있지만 같은 항목이 여러 항목 인 경우 텍스트 상자의 "섹션"을 편집하는 방법을 알아낼 수 없습니다.RichTextBox C#

현재 2 개의 버튼이 있습니다. 치킨은 1 개, 연어는 1 개입니다.

private void button1_Click(object sender, EventArgs e) 
    { 
     chickenCount++; 
     richTextBox1.Text = richTextBox1.Text + "\nChicken " + chickenCount + "x"; 
    } 

private void button3_Click(object sender, EventArgs e) 
    { 
     salmonCount++; 
     richTextBox1.Text = richTextBox1.Text + "\nSalmon " + salmonCount + "x"; 
    } 

은 그래서 당신이 한 닭을 1 개 연어를 추가하고 그 후, 다른 닭을 추가 가정 해 봅시다. 이 코드

출력은 다음과 같습니다

Chicken 1x 
Salmon 1x 
Chicken 2x 

지금이 코드는 바로 richTextBox

의 다음 행에 추가 텍스트를 유지 것을 알고하지만 내가 출력이 원하는 것은 :

Chicken 2x 
Salmon 1x 

하지만 난 richTextBox

,536의 뭔가를 인라인으로 편집하는 방법을 정말 잘 모르겠어요
+2

richtextbox의 전체 내용을 다시 쓸 수 없습니까? – rene

+0

??? a) 닭 3x를 원하지 않습니까 ??? b) RichtTextBox를 사용하는 이유 c) 서식 지정을 원할 경우 텍스트를 직접 변경해서는 안됩니다! d) 수학을하기 위해 데이터로 목록이나 사전을 보관해야합니다 __before__ 텍스트 작성하기 e) 어떻게 계획 할 계획입니까? RTB가 도움이되지 않습니다! – TaW

+1

변경 될 때마다 ['ObservableCollection'] (https://msdn.microsoft.com/en-us/library/ms668604(v=vs.110) .aspx) 및'RichTextBox'를 업데이트 할 수 있습니다 (완전히 다시 작성하십시오 그것) –

답변

0

SelectedText 속성과 Select 메서드를 사용하여 텍스트 상자의 선을 바꿀 수 있습니다. 예를 들면 : 당신은 당신이 대체 할 줄 알고하지 않으면

int line = 0; //The line that we want to replace is the first one 
string newstr = "Chicken x2"; //We want to replace the line with this string 
int charindex = this.GetFirstCharIndexFromLine(line); //Get the index of the first character of the line 
richTextBox1.Select(charindex, richTextBox1.Lines[line].Length); //Select the line 
richTextBox1.SelectedText = newstr; //Replace its text with the string 

Lines 배열을 루프는 텍스트를 검색.