首先介绍与拖放有关的控件:
1.属性:DragMode 决定拖动 *** 作的初始化是人工方式还是自动方式,DragIcon 确定在拖动过程中显示的培轿指针的图标形状;
2.方法:Drag 开始,结束或取消拖动控件配友肆;
3.事件:MouseDown 事件发生于用户按下鼠标按钮时,DragOver 事件发生于拖动 *** 作完成时,DragDrop 事件发生于拖动 *** 作正在进行时。
然后编写一个小程序,这个程序能实现在窗口中或窗口间拖动图标的功能。建立窗口 Form1 和 Form2,在窗口中都加入 Image1,为它们设置初始显示的图片。键入以下代码(本程序在 VB5.0/6.0,Window95/98/NT4.0 环境下通过):
' Form1 下程序代码为:
Option Explicit
Dim dragx As Single
Dim dragy As Single
Const BEGIN_DRAG=1
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Image1.Picture=Source 'Sourse为被拖动的控件
Form2.Image1.Picture=LoadPicture("")
Image1.Move(X-dragx),(Y-dragy) ' X,Y为告谨鼠标所在目标窗体或控件的当前坐标
End Sub
Private Sub Form_Load()
Load Form2
Form2.Show 0
End Sub
Private Sub Image1_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)
dragx=X
dragy=Y
Image1.Drag BEGIN_DRAG'开始拖动 *** 作
Image1.DragIcon = LoadPicture("按下鼠标时想显示的光标")
End Sub
' Form2 下程序代码为:
Option Explicit
Dim dragx As Single
Dim dragy As Single
Const BEGIN_DRAG=1
Private Sub Form_DragDrop(Source As Control,X As Single,Y As Single)
Image1.Picture=Source
Form1.Image1.Picture=LoadPicture("")
Image1.Move(X-dragx),(Y-dragy)
End Sub
Private Sub Image1_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)
dragx=X
dragy=Y
Image1.Drag BEGIN_DRAG
Image1.DragIcon=LoadPicture("按下鼠标时想显示的光标")
C#或者wpf写的程序实启蚂现拖拽关键步骤在于:拖出来程序中的图片和鼠标松下时让悄携埋其他程序进行接受(这一点类似于在windows窗口中拖拽文件到程序图标上,让程序打开),我已经编译好隐歼一个程序,请留下邮箱发送给你.
简单模拟一下,你在码悉一个窗体上画一个文本框迟信乎,复制下坦睁面的代码,运行后,拖动文本框,就可以看到效果了
Private Sub Form_DragOver(Source As Control, X As Single, Y As Single, State As Integer)
Text1.Left = X
Text1.Top = Y
End Sub
Private Sub Form_Load()
Text1.DragMode = 1
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)