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這個屬性。
也是很悲催的用了Enter和MouseClick都失敗了。最后用了Click之后,才發現這才是真愛
直接上代碼:
1 private void ClickMask(object sender, EventArgs e) 2 { 3 // 每次點擊后,讓光標居文本左邊 4 mask.SelectionStart = mask.SelectionLength; 5 }③. 最后來總結:
吐槽一下,成功的路是曲折的,但是收獲總是滿滿的。
轉載于:https://www.cnblogs.com/MonkeyKingK/p/4960609.html
總結
以上是生活随笔為你收集整理的MaskedTextBox的聚焦和光标位置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Search Insert Positi
- 下一篇: redis初试牛刀