以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [原创]登录窗口输入密码后按回车键自动登录的实现及解析  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=109582)

--  作者:mositu
--  发布时间: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编辑过]

--  作者:有点甜
--  发布时间:2017/11/15 12:18:00
--  

value 改成 text就行了

 

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