Foxtable(狐表)用户栏目专家坐堂 → [原创]登录窗口输入密码后按回车键自动登录的实现及解析


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

主题:[原创]登录窗口输入密码后按回车键自动登录的实现及解析

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


加好友 发短信
等级:幼狐 帖子:112 积分:1148 威望:0 精华:0 注册:2012/3/28 13:02:00
[原创]登录窗口输入密码后按回车键自动登录的实现及解析  发帖心情 Post By:2017/11/15 11:30:00 [只看该作者]

      登录窗口输入密码后按回车键自动登录,这是很常见的功能,在vb6里可以通过设置相关属性实现,在foxtable里没有这些的属性设置,在论坛里也没有找到完全可行的解决方法,经过自己的摸索,可以实现,特分享给需要的朋友。
TextBox1 用户名框
TextBox2 密码框
BtnLogin 登录按钮
过程:TextBox 的按键事件,选择keydown事件,首先判定是不是按了回车键,如果是回车键则模拟点击登录按钮,代码如下:

If e.keycode = 13 Then
    e.Form.Controls("BtnLogin").PerformClick()
End If

测试未能成功,找原因,使用MessageBox.show(e.Form.Controls("TextBox2").value),发现值为空,切换一下其他控件,再回到密码控件按回车键就有值了,所以问题在要转移焦点后才能获得值,代码改进如下:

If e.keycode = 13 Then
    e.Form.controls("BtnLogin").Select
    e.Form.Controls("BtnLogin").PerformClick()
End If

测试成功!

value 改 text 确实可以。还有个问题:

BtnLogin的点击代码
If e.Form.Controls("TextBox2").text = "123" Then
MessageBox.Show("成功")
Else
MessageBox.Show("错误")
e.Form.Controls("TextBox2").Select() '想密码错误的情况下回到密码框
End If

经测试e.Form.Controls("TextBox2").Select() 似乎不起作用,其中原因自己体会,将TextBox2的按键事件修正代码:
If e.keycode = 13 Then
    e.Form.Controls("BtnLogin").Select()
    Sendkeys.Send("{ENTER}")
End If
成功!
[此贴子已经被作者于2018/1/5 10:35:15编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/15 12:18:00 [只看该作者]

value 改成 text就行了

 

MessageBox.show(e.Form.Controls("TextBox1").text)


 回到顶部