用load动态加载控件后,控件响应mouse_move事件的问题
作法如下:
在form上添加一个shape,其属性设置为(name=shape,index=0,visible=false),添加一commandButton,其click事件代码如下:(在窗体上动态加载5个shape即5个红色的圆)
For i = 1 To 5
Load Shape(i) 'shape为控件数组
With Shape(i)
.Left = 200 + i * 300
.Top = 100
.Width = 225
.Height = 225
.Shape = 3()
.FillStyle = 0
.FillColor = &HFF&
.Visible = True '使控件可见
.ZOrder 0
End With
Next i
问题描述如下:
由于控件是动态加载的,应该怎么写shape的mouse_move事件,使得当程序运行后鼠标选中的某一个shape能够随鼠标移动,当鼠标mouse_up的时候,选中的shape移动到了鼠标当前位置.请各位高手指点.
问题点数:50、回复次数:4Top
1 楼love603(菜)回复于 2006-08-03 17:37:22 得分 0
程序发错了,应该如下:(上面的多了两个括号)
For i = 1 To 5
Load Shape(i) 'shape为控件数组
With Shape(i)
.Left = 200 + i * 300
.Top = 100
.Width = 225
.Height = 225
.Shape = 3
.FillStyle = 0
.FillColor = &HFF&
.Visible = True '使控件可见
.ZOrder 0
End With
Next i
Top
2 楼province_(雍昊)回复于 2006-08-03 20:08:45 得分 0
就对它写事件啊,参数里有INDEX会指示你当前是哪个发生事件了。
当然如果SHAPE没有这种事件的话,那就只有在容器事件里检测当前鼠标在哪个SHAPE里再作对应的处理。Top
3 楼jacket1982(长路漫漫)回复于 2006-08-16 00:33:31 得分 0
楼上的说的是金玉良言!!
Top
4 楼XNNYYGN()回复于 2006-08-17 01:19:21 得分 0
SHAPE ,LINE ,TIMER控件是轻量控件(MSDN里面的名词),不支持与鼠标有关的事件,一般都使用他的容器的鼠标事件.Top




