MaskedTextBox的聚焦和光标位置
遇到一个关于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的聚焦和光标位置的更多相关文章
- js获取输入框中当前光标位置并在此位置插入字符串的方法(angularjs+ts)
一半是参照别人代码,一半是自己代码,略笨拙,如果有更好的方法希望分享. 获取当前光标位置的方法 getCaretPosition (obj:any) { //获取输入框中当前光标的位置,obj为此输入 ...
- input输入时光标位置靠上问题解决
在css中如果我们定义了input高度在输入时会发现光标位置靠上了不在居中了,在Chrome浏览器中,当设置了line-height时,input无文字,光标高度与line-height一致:inpu ...
- iOS---设置输入框的光标位置
//这里设置光标位置,让光标位置后移10 textField.leftView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 10, 0)]; tex ...
- 使用C#模拟键盘输入、鼠标移动和点击、设置光标位置及控制应用程序的显示
1.模拟键盘输入(SendKeys) 功能:将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样. 语法:SendKeys.Send(string keys);SendKeys.SendWa ...
- EditText光标位置
1.xml中设置 gravity="top" 加入edittext框的高度不止一行时,该属性可是光标定位在第一行,不设置的话光标是默认在框的中间 2.etEdit.setSele ...
- C#-WinForm-如何获取文本框(TextBox)中鼠标,光标位置
文本框(TextBox)中的鼠标位置和光标位置是两个不同的概念,鼠标位置是要点击鼠标后(NouseDown)获取到,而光标位置却是实时就要获取到,也就是用户输入一个字符(KeyUp),这个位置就要改变 ...
- android EditText获取光标位置并安插字符删除字符
android EditText获取光标位置并插入字符删除字符1.获取光标位置int index = editText.getSelectionStart(); 2.在光标处插入字符int index ...
- javascript获取以及设置光标位置
一. 获取光标位置: // 获取光标位置 function getCursortPosition (textDom) { var cursorPos = 0; if (document.selecti ...
- Android EditText获取光标位置并插入字符删除字符
1.获取光标位置 int index = editText.getSelectionStart(); 2.在光标处插入字符 int index = editText.getSelectionStart ...
随机推荐
- VS2010下安装Cocos2dx完整教程(原)
一.本人所使用的Cocos2dx版本(cocos2d-2.1rc0-x-2.1.3),下载地址:http://code.google.com/p/cocos2d-x/downloads/list 当前 ...
- HDU 5703 Desert 水题 找规律
已知有n个单位的水,问有几种方式把这些水喝完,每天至少喝1个单位的水,而且每天喝的水的单位为整数.看上去挺复杂要跑循环,但其实上,列举几种情况之后就会发现是找规律的题了= =都是2的n-1次方,而且这 ...
- java集合-hashCode
hashCode 的作用 在 Java 集合中有两类,一类是 List,一类是 Set 他们之间的区别就在于 List 集合中的元素师有序的,且可以重复,而 Set 集合中元素是无序不可重复的.对于 ...
- 大家一起撸代码之——Hibernate各种主键生成策略与配置详解
1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据库都无关,可以跨数据库.在存储对象前,必须要使用主 ...
- [转载]jQuery诞生记-原理与机制
by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=3520 一.看似偶然的 ...
- 使用Sublime Text作为Markdown编辑器
Sublime Text 3作为一个优秀的文本编辑器,拥有很多的扩展插件.我们可以利用这些插件为Sublime Text 增加扩展的功能,在这里我们借助两个插件来将Sublime Text 3变成一个 ...
- 通过 imagick 让 PHP 生成 PSD 文件缩略图
第一步.安装ImageMagick 首先需要安装 ImageMagick ,因为 imagick 是一个可以供 PHP 调用 ImageMagick 功能的PHP扩展.(目前最新版本是:ImageMa ...
- javascript 异步模块加载 简易实现
在javascript是没有类似java或其他语言的模块概念的,因此也不可能通过import或using等关键字来引用模块,这样造成了复杂项目中前端代码混乱,变量互相影响等. 因此在复杂项目中引入AM ...
- there is no spatial analyst license available or enabled
解决方案:右击license—属性
- SAP中日期时间函数总结
1.获得最后一天CALL FUNCTION 'FIMA_DATE_CREATE' EXPORTING I_DATE = I_DATE "输入 ...