你在做监控系统??,表示地图上的监控点\对象!
这个没有必要用控件来实现,用image和imagelist控件完全可以解决问题,非常简单灵活.
我告诉你我是如何做的。
首先,在设计阶段在界面上放image控件一个,Index设置为0,作为程序运行阶段动态生成的母本。
在界面上放置一个imagelist控件,里面存放你需要变换的图标(当然可以直接用文件,这样不需要imagelist控件)
在界面上放一个Line控件
你需要的功能的实现办法:
拖曳:
image控件(假设为imgX)的MouseDown事件里面写加
If Button = 1 then
theDrag=Index'此处保存拖曳的图标索引,后面有用
imgX(index).Drag 1
end if
Button=2即鼠标右键一般用来弹出菜单,不拖曳!
在image控件的容器控件的DragDrop事件里面添加代码(拖曳结束时改变image控件的坐标到新地址)
imgX(theDrag).Left = X
imgX(theDrag).Top = Y
为了使拖曳过程生动,我们在容器控件的DragOver事件里面加入如下代码(显示从原地到现在拖曳到的位置的直线(改变Line控件的坐标实现))
lineShow.X2 = X
lineShow.Y2 = Y
我估计你在做监控系统,表示地图上的监控点\对象!如果是这样的话,我们是同行了。
这个没有必要用控件来实现,用image和imagelist控件完全可以解决问题,非常简单灵活.
我告诉你我是如何做的。
首先,在设计阶段在界面上放image控件一个,Index设置为0,作为程序运行阶段动态生成的母本。
在界面上放置一个imagelist控件,里面存放你需要变换的图标(当然可以直接用文件,这样不需要imagelist控件)
在界面上放一个Line控件
你需要的功能的实现办法:
拖曳:
image控件(假设为imgX)的MouseDown事件里面写加
If Button = 1 then
theDrag=Index'此处保存拖曳的图标索引,后面有用
imgX(index).Drag 1
end if
Button=2即鼠标右键一般用来弹出菜单,不拖曳!
在image控件的容器控件的DragDrop事件里面添加代码(拖曳结束时改变image控件的坐标到新地址)
imgX(theDrag).Left = X
imgX(theDrag).Top = Y
为了使拖曳过程生动,我们在容器控件的DragOver事件里面加入如下代码(显示从原地到现在拖曳到的位置的直线(改变Line控件的坐标实现))
lineShow.X2 = X
lineShow.Y2 = Y