精易论坛

标题: 怎么才能把按钮事件或者输入框被单击事件写在别的程序..... [打印本页]

作者: xshao5206    时间: 2024-2-5 21:51
标题: 怎么才能把按钮事件或者输入框被单击事件写在别的程序.....
比如我到,按钮 或者编辑框是在启动窗口,我又增加一个程序集1 ,我想把按钮事件和编辑框被单击事件写在程序集1里面,因为我写的是工控软件,工控行业使用的都是触摸屏,windows自带的屏幕键盘很难用,所以自己写了一个键盘,按钮超级多,还有编辑框也有好多,需要单击编辑框触发 我写的键盘,如果都写在启动窗口里面看着都头晕,有没有其他的办法呢?

作者: 1752328925    时间: 2024-2-5 22:02
你可以这样做

K1UFEYD4JENO0BU2H.png (102.7 KB, 下载次数: 0)

K1UFEYD4JENO0BU2H.png

作者: 帅气与大侠    时间: 2024-2-5 22:33
比如我到,按钮 或者编辑框是在启动窗口,我又增加一个程序集1 ,我想把按钮事件和编辑框被单击事件写在程序集1里面,因为我写的是工控软件,工控行业使用的都是触摸屏,windows自带的屏幕键盘很难用,所以自己写了一个键盘,按钮超级多,还有编辑框也有好多,需要单击编辑框触发 我写的键盘,如果都写在启动窗口里面看着都头晕,有没有其他的办法呢?
窗口下的组件事件,只能存放在目标窗口的程序集中
如果组件特别多,比如100个组件,那么你不能傻傻的弄100个事件
正确的做法是:
事件转移()也就是将99个组件,都转移到一个组件事件里处理
以下是一个例子,具体的逻辑可能不是很严谨,仅供参考


  
变量名类 型静态数组备 注
寻找组件句柄整数型 
I整数型 
找到的组件编辑框 
寻找组件句柄 = 寻找组件 (_启动窗口, “编辑框”, “编辑框”, , )
如果真 (寻找组件句柄 > 0)
计次循环首 (取找到组件数目 (寻找组件句柄), I)
找到的组件 = 取所找到组件 (寻找组件句柄, I - 1)
如果真 (找到的组件.取窗口句柄 () ≠ 编辑框1.取窗口句柄 ())
' 将找到的所有编辑框的事件,转移到编辑框1的相同事件中处理,如:编辑框1.放开某键
事件转移 (找到的组件, 编辑框1)

计次循环尾 ()
返回 (0)  ' 可以根据您的需要返回任意数值
子程序名返回值类型公开备 注
_编辑框1_放开某键逻辑型 
参数名类 型参考可空数组备 注
键代码整数型
功能键状态整数型
变量名类 型静态数组备 注
目标编辑框编辑框 
组件名称文本型 
' 此处编辑框1的放开某键事件,已经接管了其它所有编辑框的放开某键事件了,通过:取事件组件 ()命令来区分是那个编辑框的
目标编辑框 = 取事件组件 ()
组件名称 = 取组件名称 (目标编辑框)
调试输出 (组件名称, “放开了”, 键代码)
' 如果你的事件代码要转移到程序集2中取处理,那么你程序集2里新建一个子程序,调用就可以了



i支持库列表   支持库注释   
spec特殊功能支持库



作者: xshao5206    时间: 2024-2-5 22:53
1752328925 发表于 2024-2-5 22:02
你可以这样做

你这是普通的子程序,控件事件就不行了





欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4