2012-02-07 32 views
3

我在.NET Windows窗體應用程序中使用RichTextBox控件。我允許用戶在文本框內按Tab鍵。然而,當我保存在文本框中。文本值就會出現這樣的:.NET RichTextBox製表符字符

"This[]is[a]tab[]test[]" 

這裏每個用戶按下TAB時,它就會顯示在.text財產無法識別的字符。

這是怎麼回事?

實例截圖:
enter image description here

+0

你是什麼意思的「無法識別的字符」? TAB的ASCII值是8.它可能會在其中插入char(8)。 – 2012-02-07 16:23:09

+0

@RoyDictus .Text應該顯示一個轉義值; _ \ t_ – 2012-02-07 16:24:23

+0

基本上,如果我將它輸入到RichTextBox中:「嗨[tab key press]我的名字是John Doe」。當我檢查RichTextBox的.Text屬性時,它將此值顯示爲「Hi [] My name is John Doe」。這就像我按下它時不識別TAB字符。它只是顯示一個正方形。我會馬上附上截圖。 – mint 2012-02-07 16:33:55

回答

0

我結束了尋找被按下「TAB」字符的所有實例,並用「\ t」替換它,這工作:

Dim tabString = Convert.ToChar(" ") //This is the [] string 
RichTextBox.Text = RichTextBox.Text.Replace(tabString, "  ") 

不是最好的解決方案,仍然不明白爲什麼RichTextBox沒有自動採用TAB鍵,但它現在工作。

2

在中間窗口:

"Hi mint " RichTextBox1.Text結果,即便是與AcceptTab=True我們認爲它應該是"Hi[TAB Key]Mint"

RichTextBox1.Rtf結果?

"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}} \viewkind4\uc1\pard\f0\fs17 Hi\tab mint\tab\par }" 

這是我相信你在尋找的伎倆:

RichTextBox1.SaveFile("C:\abc.txt", RichTextBoxStreamType.UnicodePlainText) 
+0

謝謝,我會試試這個。雖然這不是很理想,因爲用戶會多次保存,而且我討厭每次保存時都要寫一個文本文件。但值得嘗試 – mint 2012-02-08 19:08:59