以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]求助模拟键盘按键的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=146772)

--  作者:1669607010
--  发布时间:2020/3/2 10:52:00
--  [求助]求助模拟键盘按键的问题
做了一个录入界面,现在的需求是当输入焦点在文本框1、文本框2、文本框3、文本框4时,禁用键盘,只能用窗口提供的模拟键盘录入,而当焦点在文本框5的时候可以用键盘输入也可以用窗口提供的模拟键盘录入。哪位老师看看这个功能如何实现?????
[此贴子已经被作者于2020/3/2 10:52:47编辑过]

--  作者:1669607010
--  发布时间:2020/3/2 10:54:00
--  
这是例子,哪位老师帮忙看看,谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:模拟键盘.table


--  作者:有点蓝
--  发布时间:2020/3/2 11:14:00
--  
文本框1、文本框2、文本框3、文本框4,keydown事件:

e.cancel = true

--  作者:1669607010
--  发布时间:2020/3/2 11:25:00
--  
明白了,老师还有一个问题,模拟键盘的每个按键的代码应该怎么设置最简单啊?
--  作者:有点蓝
--  发布时间:2020/3/2 11:44:00
--  
文本框1、文本框2、文本框3、文本框4enter事件使用全局变量记录点击的是哪个文本框,模拟键盘给全局变量指定的控件赋值

e.form.controls(vars("当前控件")).text &= e.sender.text

--  作者:1669607010
--  发布时间:2020/3/2 13:36:00
--  
谢谢老师指导,所需功能基本都已实现,现在想再增加一个“←”退格删除键,请问这个按钮怎么处理啊?我其他的模拟按键实在全局单击里写的,这个删除按钮要怎么处理啊?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:有点蓝
--  发布时间:2020/3/2 14:36:00
--  
按钮事件
Dim txt As WinForm.TextBox = e.Form.Controls(vars("当前控件"))
Dim i As Integer = txt.SelectionStart
If i > 0 Then
    Dim s As String = txt.Text.SubString(i)
    txt.text = txt.Text.SubString(0,i-1) & s
    txt.SelectionStart = i-1
End If

--  作者:1669607010
--  发布时间:2020/3/2 14:50:00
--  
Dim txt As WinForm.TextBox = e.Form.Controls(vars("当前控件"))
Dim i As Integer = txt.SelectionStart
If i > 0 Then
    Dim s As String = txt.Text.SubString(i)
    txt.text = txt.Text.SubString(0,i-1) & s
    txt.SelectionStart = i-1
End If

老师,这段代码是放在“删除”按钮的单击里面吗?我放进去怎么没效果???

--  作者:有点蓝
--  发布时间:2020/3/2 15:14:00
--  
窗口afterload给所有文本框设置一下

Dim txt As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim d = txt.BaseControl
d.HideSelection = False

--  作者:1669607010
--  发布时间:2020/3/3 9:32:00
--  
e.form.controls(vars("当前控件")).text &= e.sender.text
老师,还有个问题,按这样的代码,用模拟键盘录入时,输入和删除都正常,可无法实现插入输入,插入输入的时候,无论光标在什么位置录入的内容都在最后面,应该怎么解决?