2014-04-26 2 views
1

VB 2010 Express 사용. richtextbox 컨트롤 rtxbxResult가 있고 위 첨자로 텍스트를 추가하고 싶습니다 - 숫자 a, b 및 c가 있고^2 + b^2 = c^2, 즉 2^2 + 3^2 = 4^2 (명백하게 2 위 첨자로). richtextbox .Text, .SelectedText, .Rtf 및 작동 방식과 혼동을 느낍니다.VB 2010 richtextbox에 서식있는 텍스트 추가

나는

rtxbxResult.Text &= intA & "^2 " & intB & "^2 = " & intC & "^2" & vbCrLf" 
내가 .SelectionCharOffset 및 .SelectedText를 사용하여 시도

와 컨트롤에 텍스트를 추가 할 수 있지만, 오프셋 나에게 포기하지 않았다

rtxbxResult.SelectionStart = rtxbxResult.TextLength 
rtxbxResult.SelectedText = String.Format("{0,6:#,#}", lngA) 
rtxbxResult.SelectionCharOffset = 1000 
rtxbxResult.SelectedText = "3" 
rtxbxResult.SelectionCharOffset = 0 
rtxbxResult.SelectedText = " + " 
rtxbxResult.SelectedText = String.Format("{0,6:#,#}", lngB) 
rtxbxResult.SelectionCharOffset = -50 
rtxbxResult.SelectedText = "3" 
rtxbxResult.SelectionCharOffset = 0 
rtxbxResult.SelectedText = " + " 
rtxbxResult.SelectedText = String.Format("{0,6:#,#}", lngC) 
rtxbxResult.SelectionCharOffset = 50 
rtxbxResult.SelectedText = "3" 
rtxbxResult.SelectionCharOffset = 0 
rtxbxResult.SelectedText = " = " 
rtxbxResult.SelectedText = String.Format("{0,6:#,#}", lngD) 
rtxbxResult.SelectionCharOffset = 50 
rtxbxResult.SelectedText = "3" 
rtxbxResult.SelectionCharOffset = 0 
rtxbxResult.SelectedText = " = " 
rtxbxResult.SelectedText = String.Format("{0,12:#,#}", lngD3) & vbCrLf 

모든 3S 그냥 옆에 인쇄 그 결과와 위첨자 또는 아래 첨자가 아닙니다. .RTF 속성을 사용하기 때문에 RTF 코드를 보면 혼란 스럽습니다. 다음 코드를 사용하는 경우 :

Private Sub btnTestRTF_Click(sender As System.Object, e As System.EventArgs) Handles btnTestRTF.Click 
    rtxbxResult.Clear() 
    rtxbxResult.Rtf = "{\rtf1 This is how to enter VB{\sub net} with net subscripted.\par}" 
    rtxbxResult.Rtf &= "{\rtf1 How{\sub about this?}\par}" & ControlChars.Cr 
End Sub 

두 번째 줄이 제대로 표시되지 않지만 두 번째 줄이 전혀 표시되지 않습니다. .rtf =로 두 x 째 행을 변경하면 첫 x 째 행을 겹쳐 9니다. 그리고 디버그 단계를 거치면 각 줄이 실행되는 것처럼 서브 루틴을 종료 할 때까지 텍스트가 텍스트 상자에 나타나지 않습니다. .Rtf 속성을 설정하는 방법과 richtextbox에서 보이는 텍스트로 변환하는 방법을 잘 모르겠습니다. .Text 속성과 .Rtf 속성의 차이점은 무엇입니까? 이미 상자에 들어있는 텍스트에 서식있는 텍스트를 추가하려면 어떻게합니까? 여기에 설명 된대로

답변

0

당신은, RTF 문서 내부의 첨자를 삽입 \super를 사용해야합니다 :

링크 된 기사

관련 부품 - C#을 번역 :

' Now lets insert \super 
selectedRtf = selectedRtf.Insert(selectedRtf.IndexOf(selectedText), "\super") 

' Now set the Rtf back to the control 
richTextBox1.SelectedRtf = selectedRtf 
관련 문제