2015-05-18 31 views
0

我有具有小字體的下標的化合物的代碼。我目前有這個代碼將它從一個RichTextBox轉移到另一個按鈕點擊。如何從一個RichTextBox發送不同文本大小的字符串到另一個RichTextBox?

myRichTextBox.Text += otherRichTextBox.Text 

otherRichTextBox我卻用不同字體的大小複合我這樣做,當我結束了在myRichTextBox一個字符串,不留不同的字體大小和他們都將在箱子上主要性能和字體尺寸。

+0

你解決了你的問題嗎? – TaW

回答

2

documentation MSDN上:

「Text屬性不返回有關應用於RichTextBox的內容格式的任何信息。要獲得豐富文本格式(RTF)代碼,使用RTF格式。屬性。」

所以分配的價值,包含格式,使用:

myRichTextBox.Rtf = otherRichTextBox.Rtf; 

我把它換成+==,因爲我不知道你的意思是要追加的價值,而不是僅僅更換。如果您確實使用+=,則可能會因「rtf」代碼被一個接一個地添加而遇到問題。但是,試試看......你可能根本沒有遇到任何問題。

+0

其實:myRichTextBox.Rtf + = otherRichTextBox.Rtf – MadOX

+1

謝謝@Kamil。我記下了我爲什麼這樣做。 「rtf」代碼包含各種信息,我不確定它們中的一個可能是文檔的開始還是結尾。只需將「rtf」值附加到一起,就可能無法正確顯示,但我沒有對其進行測試。 –

1

要複製文本包括格式化你應該使用一般的RTB方式:

  • 進行選擇,然後就可以行動!

這是去哪兒,不管你做什麼的方式:

  • 樣式文本與SelectionFontSelectionColorSelectionAlignment等。
  • 插入或刪除與文本CutCopyPaste
  • Find text或AppendText

這裏是如何做你問什麼:

otherRichTextBox.SelectionStart = 0; 
otherRichTextBox.SelectionLength = otherRichTextBox.Text.Length; 
myRichTextBox.AppendText(otherRichTextBox.SelectedText); 

要在n位置插入文本的部分你寫

otherRichTextBox.SelectionStart = 0; 
otherRichTextBox.SelectionLength = otherRichTextBox.Text.Length; 
myRichTextBox.SelectionStart = n; 
myRichTextBox.SelectionLength = 0; 
myRichTextBox.SelectedText = otherRichTextBox.SelectedText; 

您需要通過你想隨時治隨走改變格式化文字幾乎任何方式

有一點牽扯,但保證按照書的順序正常工作。

要簡單地「克隆」的全文,由格蘭特的代碼去:

myRichTextBox.Rtf = otherRichTextBox.Rtf; 

很可能與原Rtf代碼工作,如果你know你在做什麼,但即使有些東西看起來還是OK的一段時間,因爲一些錯誤,最裁員會被忽略,它能夠收集垃圾..傾向所以,你應該遵循的金科玉律:

  • 進行選擇,然後就可以行動!

更新:Here是一個很好的方式來正確解決您的問題只有兩行! (但你仍然需要遵守規則..)

相關問題