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

①. 先说说聚焦:

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

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

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

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

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

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

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

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

 public TestForm()
{
InitializeComponent();
mask.Select(); //MaskedTextBox控件
}

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

②.  再说说光标:

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

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

  直接上代码:

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

③. 最后来总结:

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

MaskedTextBox的聚焦和光标位置的更多相关文章

  1. js获取输入框中当前光标位置并在此位置插入字符串的方法(angularjs+ts)

    一半是参照别人代码,一半是自己代码,略笨拙,如果有更好的方法希望分享. 获取当前光标位置的方法 getCaretPosition (obj:any) { //获取输入框中当前光标的位置,obj为此输入 ...

  2. input输入时光标位置靠上问题解决

    在css中如果我们定义了input高度在输入时会发现光标位置靠上了不在居中了,在Chrome浏览器中,当设置了line-height时,input无文字,光标高度与line-height一致:inpu ...

  3. iOS---设置输入框的光标位置

    //这里设置光标位置,让光标位置后移10 textField.leftView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 10, 0)]; tex ...

  4. 使用C#模拟键盘输入、鼠标移动和点击、设置光标位置及控制应用程序的显示

    1.模拟键盘输入(SendKeys) 功能:将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样. 语法:SendKeys.Send(string keys);SendKeys.SendWa ...

  5. EditText光标位置

    1.xml中设置 gravity="top"  加入edittext框的高度不止一行时,该属性可是光标定位在第一行,不设置的话光标是默认在框的中间 2.etEdit.setSele ...

  6. C#-WinForm-如何获取文本框(TextBox)中鼠标,光标位置

    文本框(TextBox)中的鼠标位置和光标位置是两个不同的概念,鼠标位置是要点击鼠标后(NouseDown)获取到,而光标位置却是实时就要获取到,也就是用户输入一个字符(KeyUp),这个位置就要改变 ...

  7. android EditText获取光标位置并安插字符删除字符

    android EditText获取光标位置并插入字符删除字符1.获取光标位置int index = editText.getSelectionStart(); 2.在光标处插入字符int index ...

  8. javascript获取以及设置光标位置

    一. 获取光标位置: // 获取光标位置 function getCursortPosition (textDom) { var cursorPos = 0; if (document.selecti ...

  9. Android EditText获取光标位置并插入字符删除字符

    1.获取光标位置 int index = editText.getSelectionStart(); 2.在光标处插入字符 int index = editText.getSelectionStart ...

随机推荐

  1. android FragmentActivity+FragmentTabHost+Fragment框架布局

    这周比较闲,计划系统的学习一下android开发,我本是一名IOS程序员,对手机开发还是有自己的一套思路的, 固这套思路用到我当前学android上了,先选择从Main页面的tabbar部分代码入手, ...

  2. linux 如何改变文件属性与权限

    我们知道档案权限对于一个系统的安全重要性,也知道档案的权限对于使用者与群组的相关性, 那如何修改一个档案的属性与权限呢? 我们这里介绍几个常用于群组.拥有者.各种身份的权限的指令.如下所示: chgr ...

  3. 设置MySQL允许外网访问

    1:设置mysql的配置文件      /etc/mysql/my.cnf      找到 bind-address  =127.0.0.1  将其注释掉://作用是使得不再只允许本地访问:   重启 ...

  4. ssh: command not found的解决办法

    原来是没装ssh的客户端软件,晕死…… yum -y install openssh-clients

  5. Mac上安装go环境

    Mac 安装 GO语言开发环境 官网:https://golang.org/ go语言的安装:http://docscn.studygolang.com/doc/install 下载:go1.7rc3 ...

  6. getDate()返回日期不一致问题引发的bug

    问题描述 最近在webapp的开发中遇到一个Date对象中getDate获取日期的兼容性问题,Date对象的getDate方法返回的日期和传入的日期不一致,例如: 在android 4.3以下版本,g ...

  7. VSTO开发,转帖

    http://www.cnblogs.com/oneivan/p/4243574.html

  8. SharePoint Online 创建门户网站系列之图片滚动

    前 言 创建SharePoint Online栏目我们之前已经介绍过了,具体就是内容编辑器方式.自带WebPart方式和JavaScript读取后台数据前台做展示的三种: 但是,对于复杂的展示来说,这 ...

  9. [outlook]打开以后就自动进入安全模式的解决方法。Outlook start in safe mode.

    给客户写了一个Outlook的add-in, 用现在时髦的话应该叫outlook的app. 这个add-in的作用就是把outlook中的email,直接上传到SharePoint中.想要代码的联系我 ...

  10. git 删除远程源,新增加源

    git remote remove origin git remote add origin git@XXXX