我在.NET Windows窗体应用程序中使用RichTextBox控件。我允许用户在文本框中按TAB键。但是,当我在文本框中保存.Text值时,它将显示如下:
"This[]is[a]tab[]test[]"
每次用户按下TAB时,它都会在.Text属性中显示为无法识别的字符。
这里发生了什么?
屏幕截图示例:
答案 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”即可。