.NET RichTextBox制表符字符

问题描述:

我在.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

我结束了寻找被按下“TAB”字符的所有实例,并用“\ t”替换它,这工作:

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

不是最好的解决方案,仍然不明白为什么RichTextBox没有自动采用TAB键,但它现在工作。

在中间窗口:

"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