2010-04-29 79 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。