我有一个TextBox
的程序,当我得到空间输入时,我需要编辑文本。
所以我这样做了,但随后指标返回到文本的开头,这不是一个好的MMI。
我想知道是否有办法在不改变指标位置的情况下编辑文本,或者有没有办法在TextBox
中设置指标位置?
我试图以多种方式编辑文本,但它们都会导致指标回到文本的开头。
我找不到影响指标位置的方法所以我猜这是不可能的,但我可能错了。
请帮忙。
答案 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
替换为该号码即可。