从文本框C#获取行索引

时间:2013-03-04 15:17:09

标签: c# wpf textbox

是否可以通过编程方式获取WPF中TextBox元素内特定行开头的插入符索引?

例如,要选择第20行:

my_textbox.GetLineIndex(20);

我希望获取此信息,以便我可以将其用作my_textbox.SelectionStart值。

my_textbox.ScrollToLine(20),但这不会给我一个我不认为的索引?

3 个答案:

答案 0 :(得分:3)

我认为没有内置的方法,但您可以尝试这样的扩展方法。

public static int GetLineIndex(this TextBox textbox, int line)
{
    var text = textbox.Text;
    var thisLine = 0;
    for (var i = 0; i < text.Length; i++)
    {
        if (thisLine == line)
            return i;

        if (text[i] == '\n')
            ++thisLine;
    }

    throw new ArgumentOutOfRangeException();
}

答案 1 :(得分:1)

您只需使用“ GetCharacterIndexFromLineIndex”功能就可以在特定行的开头获取插入符号索引。

您可以在以下位置查看有关此功能的更多信息:Microsoft Documentation for GetCharacterIndexFromLineIndex

这将根据需要在行的开头返回插入号索引。

int startIndex = my_textbox.GetCharacterIndexFromLineIndex(lineNumber);

答案 2 :(得分:0)

您可以使用按钮单击多行文本框

bucket.get_key()