注册 登录
编程论坛 VFP论坛

如何移动控件

fanjinyu9108 发布于 2020-11-15 20:15, 1193 次点击
我建立了一个表单,表单内创建了一个CONTAINER的类,容器类里面放了一个shape,铺满了整个容器,我想要的效果是如果用鼠标可以在让容器表单内四处移动,调整位置,请问怎么弄?
只有本站会员才能查看附件,请 登录
7 回复
#2
fanjinyu91082020-11-16 07:37
我要表达的意思是容器类和表单共用一个数据源,同时容器要能移动。但是我发现用表单集好像更能满足我的需求,我没有用过表单集,试着创建了一个,但是我发现不能同时显示2个表单,请问应该怎么处理,就是小表单在大表单内移动,2个表单要同时显示。
#3
fanjinyu91082020-11-16 10:06
问题解决了,就是把需要移动的小表单B  alwaysontop的属性设置为.t.,但是新问题来了,我的大表单A是停靠在主表单的,将大表单A和小表单B并在表单集后,打开大表单时,不能停靠在主表单了,请教如何解决。
#4
吹水佬2020-11-16 10:30
就是表单上的控件位置变动吧,拖动或在鼠标移动事件改变控件的位置
#5
fanjinyu91082020-11-16 10:42
对,用表单集后子表单可以随意拖动,但是大表单不能停靠主表单了,请问一个表单集内的表单能停靠在另外的主表单里面吗?就是表单集内的表单1 停靠在表单二,表单二是不在表单集内的

[此贴子已经被作者于2020-11-16 10:46编辑过]

#6
fanjinyu91082020-11-16 10:49
如果能让容器拖动改变位置也行
#7
吹水佬2020-11-16 11:42
以下是引用fanjinyu9108在2020-11-16 10:49:33的发言:

如果能让容器拖动改变位置也行

也可以在鼠标事件改变控件改变位置
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

程序代码:
of = CREATEOBJECT("form1")
of.show(1)
RETURN

DEFINE CLASS form1 as form
    ADD OBJECT con1 as con WITH left=10,top=10
ENDDEFINE

DEFINE CLASS con as Container
    nX = 0
    nY = 0
    PROCEDURE MouseDown(nButton, nShift, nXCoord, nYCoord)
        this.nX = this.left - nXCoord
        this.nY = this.top - nYCoord
    ENDPROC
    PROCEDURE MouseMove(nButton, nShift, nXCoord, nYCoord)
        IF nButton==1
            this.left = this.nX + nXCoord
            this.top = this.nY + nYCoord
        ENDIF
    ENDPROC
ENDDEFINE
#8
fanjinyu91082020-11-16 17:48
非常感谢吹水佬师傅的解答,我决定不用表单集了,太麻烦了
1