gpt4 book ai didi

C# 获取RichTextBox中的光标行

转载 作者:行者123 更新时间:2023-12-03 03:42:34 26 4
gpt4 key购买 nike

在C#中,我有一个RichTextBox,我想获取光标的当前行。我找到的每个答案都说要使用:

int currentLine = richTextBox1.GetLineFromCharIndex(richTextBox1.SelectionStart);

但是,richTextBox1.SelectionStart 仅在您对文本进行更改时更新。如果您使用箭头键移动光标,它不会更新(我已经通过在移动时打印 SelectionStart 来验证这一点)。

如何获取光标的当前行,即使使用箭头键移动光标也能跟踪它?

我在Win8中使用VS2012。

编辑: terrybozzio 的回答表明了问题。对于遇到此问题的其他人,您不能将代码放入 richTextBox1_TextChanged 中。您需要将其放入 richTextBox1_SelectionChanged 中。

最佳答案

首先需要获取selectionstart,如果没有任何选定的文本,返回的值是插入符的位置(与文本开头的字符偏移量),然后调用 getlinefromcharindex 并传递该值,将其放置在选择更改事件中,甚至使用箭头键移动插入符位置它将更新:

private void richTextBox1_SelectionChanged(object sender, EventArgs e)
{
int index = richTextBox1.SelectionStart;
int line = richTextBox1.GetLineFromCharIndex(index);
label1.Text = "cursor at line " + line.ToString();
}

关于C# 获取RichTextBox中的光标行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17909651/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com