C#Forms TextBox选择带有插入位置的文本

时间:2016-01-11 09:11:45

标签: c# forms textbox selection caret

我无法弄清楚是否可以通过设置插入位置以编程方式选择TextBox中的文本?它始终将插入位置设置为选择结束:

我可以在选择开始时获得插入符号吗? (任何其他地方?)

2 个答案:

答案 0 :(得分:1)

您需要使用TextBox的Select()方法

private void button1_Click(object sender, EventArgs e)
{
    textBox1.Focus();
    textBox1.Select(3, 4);
}

注意:如果没有特定文本框的焦点,则select方法不能用作intent。所以你需要在select方法之前使用focus方法。

答案 1 :(得分:1)

确实可以实现这一点,但是当TextBox控件具有焦点时,文本选择将仅可见

我能想到为您的特定应用程序实现的最佳方法是创建一个简单的方法,如下所示:

private void SetTextSelection(TextBox textBox, int start, int length)
{
    textBox.Select(start, length);
    textBox.Focus();
}

然后,只需一行,您就可以使用如下语句设置TextBox的选择:

SetTextSelection(textBox, 3, 4);

其中textBox是文本框控件的实例,3是选择中第一个字符的从零开始的索引,{{1} }是选择的长度

正长度将从左到右的方向选择。请记住,您还可以指定负长度,选择将“向后”,就像您使用鼠标选择文本并从右向左拖动一样。