zoukankan      html  css  js  c++  java
  • MaskedTextBox的聚焦和光标位置

    遇到一个关于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 }

    ③. 最后来总结:

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

  • 相关阅读:
    Cocos2d-js 开发记录:图片数据资源等的异步加载
    Cocos2d-js 开发记录:声音播放
    Cocos2d-js 开发记录-初始
    PAT 1064 Complete Binary Search Tree
    python 对象属性与 getattr & setattr
    LeetCode Text Justification
    LeetCode Valid Number
    LeetCode String to Integer (atoi)
    struts2--标签取值
    java--Hibernate实现分页查询
  • 原文地址:https://www.cnblogs.com/MonkeyKingK/p/4960609.html
Copyright © 2011-2022 走看看