2010-04-29 83 views
1

我需要在RichTextBox中打开一个大约4MB的文本文件,但是文本的末尾是“修剪”的。RichTextbox MaxLength太小

如何覆盖RichTextBox.MaxLength Int32限制?

回答

1

我不确定RichTextBox能处理多少文本,但我相信MaxLength只适用于用户输入的文本。如果直接设置.Text,它应该能够超过MaxLength,除非MaxLength已经达到最大值。

+0

nope,该限制适用于RTB.Text属性以及 – Keyo 2010-04-29 18:54:47

+0

请参阅:http://msdn.microsoft.com/en-us/library/system.windows.forms.richtextbox.maxlength.aspx,具体为黄色框。哦,等一下,我很困惑。如果你在设计器中设置文本,那么它的工作原理?但从技术上讲,它仍然是在“运行时”,只是从.designer文件中设置。无论如何,该网站还称64K显然不到4MB。 – 2010-04-30 12:11:23

+1

所以问题就变成了,你想达到什么目的?大多数现代文本编辑器一次加载文件的一部分。当你滚动时,他们加载剩下的部分。因此,“打开”一个巨大的文件几乎是瞬间的。这与记事本可以在加载大文件时挂起相反。使用富文本格式会更棘手,因为您可能从一开始就将所有文本加粗,但您不知道如果只是加载碎片... – 2010-04-30 12:19:50

1

RichTextBox.MaxLength的默认值是2GB,所以对于4MB文件,这不会是你的问题。

+0

限制是2147483647 不幸的是,我的4MB文本文件包含比这更多的字符。 – Keyo 2010-04-29 18:57:31

+3

呃,不,你不能在一个400万磅的包里粘上20亿。 – 2010-04-29 19:17:55

+0

您可能正在考虑字符串的最大大小 – 2010-04-30 12:13:30

0

除此之外,你可以通过设置它的长度,像设置文本限制(最大限制由内存的限制):

if (textToAdd.Length > richTextBox1.MaxLength)

...不好听装载的是箱子里有大量的数据;你可能会碰到out of memory打嗝!

This answer可能会有所帮助。

- 编辑 -

必须,如果加载,那么你可以从文件加载块。当用户点击滚动按钮(上/下)加载该文件的块;听起来像一些代码 - 但必须,如果你加载!只是想!

0

确定RichTextBox的最大尺寸是2,147,483,647,这是很多输入法,如果您正在考虑复制它,可能会更好地读取数据,而不是复制到RichTextBox。