.NET RichTextBox制表符

时间:2012-02-07 16:11:38

标签: .net winforms richtextbox

我在.NET Windows窗体应用程序中使用RichTextBox控件。我允许用户在文本框中按TAB键。但是,当我在文本框中保存.Text值时,它将显示如下:

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

每次用户按下TAB时,它都会在.Text属性中显示为无法识别的字符。

这里发生了什么?

屏幕截图示例:
enter image description here

3 个答案:

答案 0 :(得分:2)

在中级窗口中:

?RichTextBox1.Text会产生"Hi mint ",即使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)

答案 1 :(得分:0)

我最终搜索了所有正在按下'TAB'字符的实例并将其替换为'\ t'并且有效:

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

不是最好的解决方案,仍然不明白为什么RichTextBox没有自动获取TAB键,但它现在可以正常工作。

答案 2 :(得分:0)

RichTextBox中有一个名为“ AcceptsTab”的属性,只需将此属性设置为“ true”即可。