Foxtable(狐表)用户栏目专家坐堂 → 请教:文本框控件光标控制


  共有3973人关注过本帖树形打印复制链接

主题:请教:文本框控件光标控制

帅哥哟,离线,有人找我吗?
bahamute
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1425 积分:11332 威望:0 精华:0 注册:2008/9/1 22:20:00
请教:文本框控件光标控制  发帖心情 Post By:2015/3/10 17:20:00 [显示全部帖子]

以下代码如果放在控件的click事件中,可以达到效果。
Dim tx As WinForm.TextBox= e.Form.Controls("TextBox1")
tx.SelectionStart = 3 
tx.SelectionLength = 2

问题:
1、上述代码如果在写到旁边的按钮事件里为何无效?
2、想通过键盘左右方向键控制光标,为何以下代码无效(文本框KeyDown事件)?


Dim n As Integer
n= e.Sender.Text.IndexOf("-")
Select Case e.KeyCode
Case Keys.right
                If e.Sender.SelectionStart = 3 Then
                     e.Sender.SelectionStart = 6
                     e.Sender.SelectionLength = 2
                 ElseIf e.Sender.SelectionStart = 6 Then
                       e.Sender.SelectionStart = 9
                       e.Sender.SelectionLength = 2
  endif
end select



 回到顶部
帅哥哟,离线,有人找我吗?
bahamute
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1425 积分:11332 威望:0 精华:0 注册:2008/9/1 22:20:00
  发帖心情 Post By:2015/3/10 17:29:00 [显示全部帖子]

Dim tx As WinForm.TextBox= e.Form.Controls("TextBox1")
tx.SelectionStart = 3 
tx.SelectionLength = 2
tx.select

上述代码运行后,控件里所有文本都被选中了,并未实现效果。

 回到顶部
帅哥哟,离线,有人找我吗?
bahamute
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1425 积分:11332 威望:0 精华:0 注册:2008/9/1 22:20:00
  发帖心情 Post By:2015/3/10 19:11:00 [显示全部帖子]

谢谢,第一个问题解决了,第二个还是卡壳。

比如文本框内容为:
00-11-22

在编辑时,如果按下键盘right(→)键,则判断当前光标位置,自动跳到下一个“-”之后并选中两位数字,但运行无效果。
求指教!
Dim n As Integer
n= e.Sender.Text.IndexOf("-")
Select Case e.KeyCode
Case Keys.right
                If e.Sender.SelectionStart >= 0  andalso e.Sender.SelectionStart <2 Then
                     e.Sender.SelectionStart = 3
                     e.Sender.SelectionLength = 2
                 ElseIf e.Sender.SelectionStart >= 3  andalso e.Sender.SelectionStart <5 Then
                       e.Sender.SelectionStart = 6
                       e.Sender.SelectionLength = 2
        endif
end select


 回到顶部
帅哥哟,离线,有人找我吗?
bahamute
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1425 积分:11332 威望:0 精华:0 注册:2008/9/1 22:20:00
  发帖心情 Post By:2015/3/10 20:07:00 [显示全部帖子]

谢谢有点甜,确实解决了,是e.cancel = True没有用对地方。

 回到顶部