<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,
我正在尝试为 JSL 中的两个列表框实现拖放行为。 基本上,我试图复制普通列表框的 colListBox 对象已经存在的拖放行为,即用户可以单击列表框中的任何项目,单击,将其拖放到另一个列表框。 我已经成功地实现了接收投递箱所需的行为,但是,我正在努力处理源投递箱。 基本上,我不确定如何实现我想要的行为。 我最接近的是为列表框的父鼠标框禁用设置单击功能,启用拖动,并将以下代码放入 << set drag begin 和 << set drag end 函数中:
<< Set Drag Begin(
Function( {this, clickpt},
If( N Items( (this << child) << Get Selected ) == 0,
(this << child) << Set Selected(1);
0;
,//Else
test = ( (this << child) << Get Selected );
test[1];
);
);
);
和这个
<< Set Drag End(
Function( {this, clickpt, how},
If( how == "move",
(this << child) << Remove Selected;
)
);
);
但是这样做,意味着单击无法选择列表框中的项目,用户必须双击,否则将选择第一个项目。 这并不理想,但这是我能够开始工作的全部。 任何帮助或指向更多信息的指针将不胜感激。
第二个注意事项,有时当我从第一个列表框拖动某些东西时,有时我拖动的项目不会删除。 这只是间歇性地发生,但我不知道它为什么会发生,或者如何解决它。 谢谢。
抱歉没有早点回来。 我被拉到其他项目上,有一段时间没有机会重新审视 JSL。 这对我很有用。 评论也真的很好。 只是想知道网络上是否有更多关于 MouseBox 的文档? 我在追踪它方面没有取得太大的成功,并且希望获得有关 MouseBox、drop commit 等机制的更多信息。干杯!