找回密码
 加入
搜索
查看: 7418|回复: 19

[AU3基础] 键盘的上、下、左、右箭头键操作[己解决]

[复制链接]
发表于 2020-12-1 15:48:00 | 显示全部楼层 |阅读模式
本帖最后由 chzj589 于 2020-12-25 13:15 编辑

请教A版:
回车键是:
        Local $id1 = GUICtrlCreateDummy()
        GUICtrlSetOnEvent(-1, '__UdpData')
        Local $aAccelKeys[1][2] = [['{Enter}', $id1]];回车键
        GUISetAccelerators($aAccelKeys)
那上箭头键如何写?
        Local $id2 = GUICtrlCreateDummy()
        GUICtrlSetOnEvent(-1, '__UdpData1')
        Local $aAccelKeys1[1][2] = [['{UP}', $id2]];上箭头键
        GUISetAccelerators($aAccelKeys1)
Func __UdpData1()
        ??????
EndFunc   ;==>###################################################
        Local $id1 = GUICtrlCreateDummy()
        GUICtrlSetOnEvent(-1, '__UdpData')
        Local $aAccelKeys[1][2] = [['{Enter}', $id1]];回车键
        GUISetAccelerators($aAccelKeys)
        Local $id2 = GUICtrlCreateDummy()
        GUICtrlSetOnEvent(-1, '_UP')
        Local $id3 = GUICtrlCreateDummy()
        GUICtrlSetOnEvent(-1, '_DOWN')
        Local $id4 = GUICtrlCreateDummy()
        GUICtrlSetOnEvent(-1, '_LEFT')
        Local $id5 = GUICtrlCreateDummy()
        GUICtrlSetOnEvent(-1, '_RIGHT')
        Local $aAccelKeys[5][2] = [['{Enter}', $id1], ['{UP}', $id2], ['{DOWN}', $id3], ['{LEFT}', $id4], ['{RIGHT}', $id5]]
        GUISetAccelerators($aAccelKeys)

Func __UdpData()
       MsgBox(0, "提示", "回车键", 1)
EndFunc   ;==>__UdpData

Func _RIGHT()
        MsgBox(0, "提示", "右箭头键", 1)
EndFunc   ;==>_RIGHT
Func _LEFT()
        MsgBox(0, "提示", "左箭头键", 1)
EndFunc   ;==>_LEFT
Func _DOWN()
        MsgBox(0, "提示", "下箭头键", 1)
EndFunc   ;==>_DOWN
Func _UP()
        MsgBox(0, "提示", "上箭头键", 1)
EndFunc   ;==>_UP终于知道是怎么回事了,其实并不是在列表上编辑。。。。。





原地編輯键盘的上、下箭头键操作RAR



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2020-12-1 15:59:40 | 显示全部楼层
Local $id1 = GUICtrlCreateDummy()
GUICtrlSetOnEvent(-1, '__UdpData')
Local $id2 = GUICtrlCreateDummy()
GUICtrlSetOnEvent(-1, '_UP')

Local $aAccelKeys[2][2] = [['{Enter}', $id1], ['{UP}', $id2]]
GUISetAccelerators($aAccelKeys)

Func _UP()
EndFunc
 楼主| 发表于 2020-12-1 16:12:17 | 显示全部楼层

谢谢!
我想在ListView列表用上、下、左、右键控制子项目移动

Func _UP()
   如何写入列表子项目移动代码???
EndFunc
发表于 2020-12-1 17:21:27 | 显示全部楼层

不举例了,简单说一下
_GUICtrlListView_SetItemText 分别设置互换位置的两项文本
如果有图像列表也需 _GUIImageList_GetIcon、_GUIImageList_ReplaceIcon、_GUIImageList_AddIcon 之类的互换
 楼主| 发表于 2020-12-2 08:23:22 | 显示全部楼层
afan 发表于 2020-12-1 17:21
不举例了,简单说一下
_GUICtrlListView_SetItemText 分别设置互换位置的两项文本
如果有图像列表也需  ...

我是想在列表上操作导航键。
鼠标点击列表子项目后形成编辑框,然后操作导航键,使编辑框移动。
做到原地编辑的时候 按下往上 按鍵 就会使编辑框移动上一个的编辑框
发表于 2020-12-2 10:39:10 | 显示全部楼层
chzj589 发表于 2020-12-2 08:23
我是想在列表上操作导航键。
鼠标点击列表子项目后形成编辑框,然后操作导航键,使编辑框移动。
做到原 ...

那就移动编辑框不就完事了
 楼主| 发表于 2020-12-2 11:30:22 | 显示全部楼层
afan 发表于 2020-12-2 10:39
那就移动编辑框不就完事了

想不出怎么移?按一下上箭头键,往上移动一行,如何写?请赐教!
发表于 2020-12-2 12:24:54 | 显示全部楼层
chzj589 发表于 2020-12-2 11:30
想不出怎么移?按一下上箭头键,往上移动一行,如何写?请赐教!

何时触发显示编辑框及其数据?将这个触发事件写到快捷键就行了。

另外提醒:
在有 ListView 之类的控件时,上下箭头已是系统默认的移动高亮选择,如果将这些注册为快捷键,则会取消系统的默认动作,在很多时候都会不方便,因为切换选择项目只能靠鼠标点击了。同理,在编辑框中,方向键默认是移动光标便于编辑,注册为快捷键也将失去该功能。
正确的做法是注册的方向键快捷键加上Ctrl或Shift之类的辅助键。
 楼主| 发表于 2020-12-2 12:34:58 | 显示全部楼层
afan 发表于 2020-12-2 12:24
何时触发显示编辑框及其数据?将这个触发事件写到快捷键就行了。

另外提醒:

谢谢!
有人曾向我问这个问题,我也认为这个挺麻烦的







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2020-12-2 12:47:31 | 显示全部楼层
chzj589 发表于 2020-12-2 12:34
谢谢!
有人曾向我问这个问题,我也认为这个挺麻烦的

这个是可以实现的。
单行编辑框上下箭头没什么意义,因此可以作为快捷键,看你怎么设计了。
比如,在编辑框显示时注册快捷键,编辑框隐藏时注销快捷键。
 楼主| 发表于 2020-12-3 09:57:01 | 显示全部楼层
afan 发表于 2020-12-2 12:47
这个是可以实现的。
单行编辑框上下箭头没什么意义,因此可以作为快捷键,看你怎么设计了。
比如,在编 ...

是可以实现。己经知道怎么写了。但还得花点时间。谢谢
发表于 2020-12-3 14:11:17 | 显示全部楼层
chzj589 发表于 2020-12-3 09:57
是可以实现。己经知道怎么写了。但还得花点时间。谢谢

是的,也是很简单的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2020-12-3 15:18:40 | 显示全部楼层
afan 发表于 2020-12-3 14:11
是的,也是很简单的

基本搞定,列表列宽不一样就有点问题。像下图的列宽不一样,就不好设置座标。我的写法跟你可能不一样


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2020-12-4 11:53:55 | 显示全部楼层
chzj589 发表于 2020-12-3 15:18
基本搞定,列表列宽不一样就有点问题。像下图的列宽不一样,就不好设置座标。我的写法跟你可能不一样

...

列宽可直接如之前的方式获取,更新到编辑框坐标就行了。
另建议:
1,左右键最好不好注册快捷键,前面说了,那是方便移动光标的。比如你要在原有内容上编辑就只能鼠标点击定位了,你试着编辑下就知道了。
2,一般高亮选择项要跟随编辑项切换,而不是始终保持不变,如现在不管你在编辑第2还是第3项,第1项始终保持高亮……
 楼主| 发表于 2020-12-4 13:02:10 | 显示全部楼层
afan 发表于 2020-12-4 11:53
列宽可直接如之前的方式获取,更新到编辑框坐标就行了。
另建议:
1,左右键最好不好注册快捷键,前面 ...

谢谢!我的方法可能不对。现原地编辑不能修改了。
再折腾折腾吧
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 07:49 , Processed in 0.077933 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表