我正在尝试在DragAndDrop
上使用多个可展开的ScrolledForm
实现Sections
功能。我应该可以在表单中移动部分,重新排序。
经过一番(大量)研究后,我了解到我最好的机会是为DragSource
和DropTarget
定义自己的自定义转移。
总而言之,您如何在Control
中移动Composite
?
更新
好吧,好吧。我的Sections
不再需要展开。他们是坚实的'不同大小的部分。这缓解了我的问题,但没有解决它。
我尝试了Drag and Drop
的变体,有和没有Transfer
。这个强大的互联网并没有考虑实施这样的事情。
答案 0 :(得分:0)
正如您所提到的,您必须实施DragSource
和DropTarget
。拖动control
时,您实际上可以将cursor
更改为实际控件的图像(查看Control.print(GC)
方法以创建Image
)。完成放置后您需要做的就是Control
的更改范围。(Control.setBounds (int x, int y, int width, int height) )
由于您希望以自由格式列出Controls
,我建议您限制在表单上设置任何Layout
,并且您必须手动计算并设置每个子项的边界{{ 1}}。