感觉C#中的Drag模式没有Delphi方便,Delphi中只要将DragMode设置为dmAutoMatic, 就可以随意的拖动,还能放置到其他位置,真爽.但是在C#中位置只能靠Dock控件来实现, 如果拖动数据对象的话,拖动方(Drag Source)写法还很麻烦,主要是对其 的mousedown, mousemove,和mouseup事件写代码,这里就不写出来了.主要注意两件事情. 1.确定拖动的区域,系统中有一个SystemInformation.Size的变量来表示拖动的区域. 2.必须调用DoDragDrop函数 对接受方而言要注意重写Dragover的事件 1.在DragOver中注意一定要将e.Effect=DragDropEffects.Copy(也可以使DragDropEffects.Move) 写上,不然DragDrop事件不会发生.
写的比较潦草,可以看源代码
|
请发表评论