Lunya's Note

学习成长笔记
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

Posted on 2014-08-16 10:29  calmrole  阅读(2953)  评论(0编辑  收藏  举报

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