2014-02-05 1 views
-2

편집 - 죄송합니다. 내 작업 코드를 너무 많이 모호하게하고 싶습니다. 왜 그렇게 많은 하향 회선이 필요한지 모르겠지만 어쨌든. 실제 코드로 업데이트/수정하는 방법은 아래를 참조하십시오.<RichTextBox의 문자로 인해 문제가 발생했습니다

내 RichTextBox 컨트롤에서 행의 시작 부분에있는 행의 기존 섹션 (<data)에 텍스트 조각을 삽입하려고하지만, 내가 할 때마다 그 다음과 같은 방법으로 :.

private void AddSelectedIntellisense(object sender, EventArgs e) 
    { 
     ToolStripItem x = sender as ToolStripItem; 
     int cursorpos = this.txt_Body.SelectionStart; 
     string final = this.txt_Body.Text.Insert(cursorpos, x.Text); 
      //final var at breakpoint is equal to "<data log=\"Original\"" 
      //then i assign it/that to the RTB.Text 
     this.txt_Body.Text = final; 
      //when checked with breakpoint, this.txt_Body.Text is equal to 
      //"log=\"\"<data log=\"Original\"" 
     this.txt_Body.SelectionStart = cursorpos + x.Text.Length; 
    } 

나는 <을 [논리, 문제 없음]으로 바꾸면 .Text 속성에 문자열을 할당 할 때 문제를 일으키는 문자가 <이라고 생각하고 있습니다.하지만 모르겠습니다. 그것을 고치는 법 ... 당신이 저를 도울 수 있다면 정말 고마워요.

나 또한 모든 인덱스를 수동으로 확인하고 모두 완벽하게 정렬되어 있습니다 ... 그래서 RTB.Text 값이 문자열과 다른 이유는 모르겠지만 다른 사람이 알려 주시면 알려드립니다.

건배!

+0

'(txt = "...")이 언어는 무엇입니까? C# –

+0

실제로 컴파일되는 코드를 게시 할 수 있습니까? –

+0

나는 그가 그 말을 주석으로 생각했다고 생각한다. 편집 중 ... –

답변

0

먼저 설정입니다 : 당신이 TXT의 값을 대체하고 다음 줄에 다음

txt = this.RTB1.Text.Substring(starts, length); 

:

string txt = this.RTB1.Text.Substring(starts, length); 
txt += this.RTB1.Text.Insert(index,"log='test'></data>"); 
this.RTB1.Text = txt; 
: 당신은 아마 문자열을 연결할 찾고

txt = this.RTB1.Text.Insert(index,"log='test'></data>"); 

+0

위의 편집을 참조하십시오. 문제가 아니므로 확인하십시오. – MaxOvrdrv

0

Ok 사람들 ... 나는 Aaron에게 그것을 줄 것이라고 생각한다. 왜냐하면 그것은 다소 관련이 있고 아무도 대답하지 않았기 때문이다.

답변 : RTB.On_TextChanged 이벤트를 사용하여 조건에 따라 인텔리 센스를 끕니다. 그러나 Intellisense 내에서 RTB.Text 값을 텍스트로 설정하기 때문에 조건이 두 번 true가되어 특정 텍스트가 두 번 추가되었습니다. 그래서 나는 intellisense 텍스트를 추가하고 on_textchanged 이벤트에서 그것을 검사 할 때 플래그를 설정합니다.

환호와 혼란에 사과드립니다.

+0

문제에 대한 실제 답변이 아닌 경우 수락 된 대답으로 선택하지 않아도됩니다. 궁극적으로 직접 해결하면 (그리고 다른 사람의 도움으로 솔직하게 제안하지 않은 경우) 자신의 대답을 수락 할 수도 있습니다. 그런 것 같습니다. 그러나, 나는 그가 원래 게시 한 코드의 "버그"에 대해 정확하다고 생각합니다. 그렇지 않으면 큰 버그를 즉시 해결하려고합니다. –

+0

또한 실제 문제는 원래 게시물에서 완전히 생략 된 요소에 있음을 유의하십시오. 메서드가 TextChanged 이벤트에 의해 트리거되었다고 언급 했더니 Text에 할당하는 재귀 이벤트 트리거가 발견되었을 수 있습니다. 이 이야기의 도덕은 전체 실제 코드의 디버거가 코드의 너무 작은 부분에있는 많은 안구보다 효과적이라는 것입니다. 따라서, 정말 어려움에 빠졌을 때 문제에 대한보다 완전하고 정확한 그림을 제공하십시오. 8-) –

+0

고마워요! 많은 도움을 주셔서 감사합니다 :) – MaxOvrdrv