码迷,mamicode.com
首页 > 其他好文 > 详细

MaskedTextBox的聚焦和光标位置

时间:2015-11-13 00:49:55      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:

遇到一个关于MaskedTextBox聚焦和光标居左的问题。

①. 先说说聚焦:

  起初给MaskedTextBox设置了Focus(),运行之后,并没有作用。

  然后又给Form添加了Load事件,又设置了Focus(),再一次Failure了。

  好吧,本着不达目的不吃饭的原则。又给Form添加了一个Activated事件,依旧设置Focus()。结果,不成想可以了。

这里先给出Load事件和Activated的区别

  首先Load事件只会在第一次窗口显示前发生。 它的执行顺序是在InitializeComponent之后。

  然后是Activated事件则是在代码激活或者窗体激活发生 (这段似不似没明白,简单理解就是窗体重绘Paint时会出发生。有兴趣的朋友可以debug一下,切身体验一下,我只能说根本停不下来)。 它的执行顺序实在Load之后。

  来说说Load事件为什么不起作用,这是因为Load事件执行时MaskedTextBox并没有显示在窗体上(不信的同学可以自己试一试)。

    之后又试了一种方法,就是使用Select(),就不赘述了,直接上代码:

1 public TestForm()
2 {
3     InitializeComponent();
4     mask.Select(); //MaskedTextBox控件
5 }

  到这里,聚焦的问题算是解决了。目前来看是两种方案: 添加Activated事件和使用Select()

②.  再说说光标:

  说到光标很快就想到SelectionStart这个属性。

  也是很悲催的用了EnterMouseClick都失败了。最后用了Click之后,才发现这才是真爱

  直接上代码:

1 private void ClickMask(object sender, EventArgs e)
2 {
3     //  每次点击后,让光标居文本左边
4     mask.SelectionStart = mask.SelectionLength;
5 }

③. 最后来总结:

  吐槽一下,成功的路是曲折的,但是收获总是满满的。

MaskedTextBox的聚焦和光标位置

标签:

原文地址:http://www.cnblogs.com/MonkeyKingK/p/4960609.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!