C#中使用SelectionStart属性指定输入框光标位置

时间:2021-11-27 13:50:43

今天工作中遇到一个小BUG需要修改,需求为在文本框输入的过程中,如果数字是以0开头则自动消除0

如输入012,则显示12

很容易想到在textbox的text changed事件中判断,如果text是startwith 0,那么TrimStart('0')

但实际调试时发现,0是是去掉了,但光标会保留在最前面,那么用户依次输入012三个数字,界面会显示为21

查看资料后发现c#中控件属性SelectionStart可以指定光标位置,那么只需要在处理TrimStart('0')后加一句

textBox.SelectionStart=textBox.Text.Length  即可达到需求

另外SelectionStart属性Get和Set都可以,由此可以完成一些需要光标定位或者获取光标位置的各种小需求