今天工作中遇到一个小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都可以,由此可以完成一些需要光标定位或者获取光标位置的各种小需求