首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >莫名的IndexOutOfRangeException

莫名的IndexOutOfRangeException
EN

Stack Overflow用户
提问于 2013-08-26 22:08:23
回答 1查看 142关注 0票数 0

我有一个包含多行文本的丰富文本框,在对部分文本进行“单击”时,我想推断出已单击的文本行,并将其写入另一个窗口进行更多处理--我遇到的问题是,在某些情况下,下面的代码正在抛出一个IndexOutOfRangeException,从我微薄的观点来看,这是不可能的.我假设GetLineFromCharIndex()和RichTextBox.Lines之间存在可选性;特别是在使用其他“包容性”变量(如“SelectionStart”)时。

在至少一种情况下,单击我的“最后一行”文本时,它后面有一个空行(使它实际上不是最后一行.)抛出一个异常。

代码语言:javascript
复制
    void OutputField_SelectionChanged(object sender, EventArgs e)
    {
        try
        {
            if (!this.LineEditor.Visible)
                this.LineEditor.Show();

            if (this.OutputField.SelectionStart == this.OutputField.TextLength)
                return;

            int TargetLine = this.OutputField.GetLineFromCharIndex(this.OutputField.SelectionStart);
            String LineText = this.OutputField.Lines[TargetLine];

            this.LineEditor.SetContent(TimeSpan.Zero, TimeSpan.Zero, LineText);

            return;
        }
        catch (Exception ex)
        {
        }
    }

具体而言,我发现的例外是以下几行;

代码语言:javascript
复制
String LineText = this.OutputField.Lines[TargetLine];

任何提示或建议将不胜感激。谢谢各位。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-26 22:21:18

看起来GetLineFromCharIndex()返回屏幕上显示的实际行,不一定是Lines[]中的索引(如果WordWrap是打开的)。尝试一下WordWrap,看看它是否像预期的那样工作。

参考文献

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18453852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档