索引超出数组范围 - RichTextBox 行 setvalue
我在网上和 StackOverflow 上进行了搜索,但我似乎找不到我的问题的答案,尽管其中一些答案非常接近。
我正在 Delphi Prism 中进行 .Net 编程。我在 WinForm 上有一个 RichTextBox,每次程序插入时我都需要在顶部插入一行文本。因此,我正在执行以下操作,它运行到该行并引发以下异常。
违规代码:
RichTextBox1.Lines.SetValue(str,0);
异常: 索引超出了数组的范围
我想,我想我知道为什么它会引发异常。这是因为 RichTextBox 中没有插入任何行。所以,我的程序确实无法插入任何文本行。每次我的程序插入新的文本行时,我都需要在顶部插入一行文本。
如果我确实调用 RichTextBox1.AppendText(str);,那么它会起作用并插入不带换行符的 str 文本,但它会附加在末尾。我希望它每次都在顶部插入文本。
如何将文本行插入到 RichTextBox 中? 谢谢。
I've searched online and on StackOverflow, but I can't seem to find the answer to my question, although some of them came very close.
I am programming for .Net in Delphi Prism. I have a RichTextBox on a WinForm and I need to insert a line of text at the top every time program does insert. So, I am doing the following and it runs upto the line and raises the following exception.
offending code:
RichTextBox1.Lines.SetValue(str,0);
Exception:
Index was outside the bounds of the array
I think, I think I know why it is raising the exception. It's because there are no lines inserted into RichTextBox. So, my program really can't insert any line of text. I need to really insert line of text at the top everytime my program inserts a new line of text.
If I do call RichTextBox1.AppendText(str);, then it works and inserts the str text without newline, but it appends at the end. I want it inserting text at the top every time.
How do you insert line of text into RichTextBox?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
文本框的 Lines 属性只是一个字符串数组。因此,您需要添加一个元素,将所有元素向下移动一个索引,然后在第一个索引处插入新文本。
文本框的 Text 属性也是一个字符串。 .NET 中的字符串是不可变的,因此您需要完全替换该值。
一种方法是这样的:
The Lines property of the textbox is simply an array of string. So you need to add one element, move all elements one index down and insert your new text at the first index.
Also the Text property of the textbox is a string. Strings in .NET are immutable, so you need to fully replace the value.
One approach would be like this: