我想将两个鼠标按钮2和3都映射到同一命令以执行相同的操作,但是行为并不相同。这是用于重现此行为的完整Tcl代码片段:
package require Tk
menu .menu
foreach button {<2> <3>} {
bind . $button {.menu post %X %Y}
}
按钮2和3均按预期方式发布菜单,而当前未发布。奇怪的是,在发布时,按按钮3会将菜单重新发布到新位置,而按按钮2则没有明显效果。通过按Esc取消发布后,按2会将菜单发布到该位置,因此很明显按钮2与命令正确关联。按住按钮2打开菜单时,按按钮3可以将菜单正确地发布到新位置。
为什么会这样?
Windows 10,ActiveTcl 8.6.7 Build 0(64位)。