Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.NET RichTextBox选项卡字符_.net_Winforms_Richtextbox - Fatal编程技术网

.NET RichTextBox选项卡字符

.NET RichTextBox选项卡字符,.net,winforms,richtextbox,.net,Winforms,Richtextbox,我正在.NET Windows窗体应用程序中使用RichTextBox控件。我允许用户在文本框内按TAB键。但是,当我在文本框中保存.Text值时,它将显示如下: "This[]is[a]tab[]test[]" 每次用户按下TAB键时,它都会在.Text属性中显示为无法识别的字符 这是怎么回事 示例屏幕截图: 在中间窗口中: ?RichTextBox1.Text导致“Hi mint”,即使使用AcceptTab=True我们认为它应该是“Hi[TAB Key]mint” ?RichTextB

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

"This[]is[a]tab[]test[]"
每次用户按下TAB键时,它都会在.Text属性中显示为无法识别的字符

这是怎么回事

示例屏幕截图:

在中间窗口中:

?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)

我最后搜索了被按下的“TAB”字符的所有实例,并将其替换为“\t”,结果成功了:

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

这不是最好的解决方案,仍然不理解为什么RichTextBox没有自动在TAB键上拾取,但它现在可以工作。

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

您所说的“无法识别的字符”是什么意思?选项卡的ASCII值为8。它可能在其中插入字符(8)。@RoyDictus.Text应该显示一个转义值\t基本上,如果我在RichTextBox中键入:“您好,我的名字是John Doe”。当我选中RichTextBox的.Text属性时,它会将其显示为值“Hi[]我的名字是John Doe”。就好像我按下它时,它不识别制表符一样。它只是显示一个正方形。我很快会附上一个截图。@RoyDictus我想标签是9。退格是8@拉斯特:当然,你是对的。我改过来了。谢谢。我试试这个。虽然这并不是很理想,因为用户需要多次保存,我不希望每次保存时都要写一个文本文件。但是值得一试