在textBox中查找并设置指标的位置

时间:2013-07-25 11:00:16

标签: c# winforms

我有一个TextBox的程序,当我得到空间输入时,我需要编辑文本。

所以我这样做了,但随后指标返回到文本的开头,这不是一个好的MMI。

我想知道是否有办法在不改变指标位置的情况下编辑文本,或者有没有办法在TextBox中设置指标位置?

我试图以多种方式编辑文本,但它们都会导致指标回到文本的开头。

我找不到影响指标位置的方法所以我猜这是不可能的,但我可能错了。

请帮忙。

2 个答案:

答案 0 :(得分:2)

试试这个。

int startPosition = textBox1.SelectionStart;
int selectionLength = textBox1.SelectionLength;

//do what ever you need
textBox1.Text = textBox1.Text.ToUpper();

//place cursor back in position
textBox1.Select(startPosition, selectionLength);

希望它有所帮助。

答案 1 :(得分:1)

尝试设置选择。这会将光标设置为第5个位置,但不选择任何内容:

textBox1.Select(5, 0);

确保这是在将控制权交还给用户之前发生的最后一件事。如有必要,可能会同时致电Focus

在您的情况下,您还需要在添加/修改文本之前跟踪该位置应该是什么?之后呢?只需将5替换为该号码即可。