C# Forms TextBox select 带插入符号位置的文本
C# Forms TextBox select text with caret position
我不知道是否可以通过编程方式 select TextBox 中的文本同时设置插入符号位置?它总是将插入符号位置设置为 selection:
的末尾
我可以在 selection 的开头得到插入符号吗? (还有其他地方吗?)
您需要使用TextBox的Select()方法
private void button1_Click(object sender, EventArgs e)
{
textBox1.Focus();
textBox1.Select(3, 4);
}
注意:如果没有特定文本框的焦点,select 方法将无法正常工作。所以你需要在 select 方法之前使用 focus 方法。
确实可以做到这一点,但是只有当 TextBox
控件具有焦点时,文本 selection 才会 visible。
我能想到的为您的特定应用程序实施的最佳方法是创建一个简单的方法,如下所示:
private void SetTextSelection(TextBox textBox, int start, int length)
{
textBox.Select(start, length);
textBox.Focus();
}
然后,您可以使用如下语句设置 TextBox
的 selection:
SetTextSelection(textBox, 3, 4);
其中 textBox
是您的文本框控件的实例,3
是 [=] 中第一个字符的从零开始的 index 34=]离子,4
是select离子的长度。
正长度将 select 从左到右的方向。请记住,您还可以指定负长度,并且 selection 将变为 "backwards",与您使用鼠标 selected 文本并从右向左拖动的方式相同。
我不知道是否可以通过编程方式 select TextBox 中的文本同时设置插入符号位置?它总是将插入符号位置设置为 selection:
的末尾我可以在 selection 的开头得到插入符号吗? (还有其他地方吗?)
您需要使用TextBox的Select()方法
private void button1_Click(object sender, EventArgs e)
{
textBox1.Focus();
textBox1.Select(3, 4);
}
注意:如果没有特定文本框的焦点,select 方法将无法正常工作。所以你需要在 select 方法之前使用 focus 方法。
确实可以做到这一点,但是只有当 TextBox
控件具有焦点时,文本 selection 才会 visible。
我能想到的为您的特定应用程序实施的最佳方法是创建一个简单的方法,如下所示:
private void SetTextSelection(TextBox textBox, int start, int length)
{
textBox.Select(start, length);
textBox.Focus();
}
然后,您可以使用如下语句设置 TextBox
的 selection:
SetTextSelection(textBox, 3, 4);
其中 textBox
是您的文本框控件的实例,3
是 [=] 中第一个字符的从零开始的 index 34=]离子,4
是select离子的长度。
正长度将 select 从左到右的方向。请记住,您还可以指定负长度,并且 selection 将变为 "backwards",与您使用鼠标 selected 文本并从右向左拖动的方式相同。