回复:表单集中怎样让表单2停靠在表单1中?现以解决,与大家分享
先前我为了实现动态在表单中添加数据,但又不想在当前表单中添加,所以就自然而然的想到了表单集,但是结果却令我很失望,所以一直在寻找解决的办,因为我相信总会有办法解决,所以我想到了用类的办法来解决,刚好,我又在网上看到了一篇类似的文章,(都市夜猫写得一篇关于之容器控件加滚动条的文章),根据他的思路,我达到了我想要的结果,现在我拿出来跟大家一起分享一下:第一步: 新建一表单,设置 BorderStyle = 0(无边框),TitleBar = 0(无标题栏),ScrollBar = 3(拥有水平和垂直滚动条),建好后,打开文件菜单,选择另存为类即可,我的是将其命名"MYFORM";
第二步:再新建一个表单,在其INIT事件中写到:
Thisform.AddProperty('MYFORM1', NEWOBJECT('MYFORM', LocFile('MYFORM.vcx')))
Thisform.MYFORM1.oForm = Thisform
Show Window (Thisform.MYFORM1.name) in window (thisform.name)
THISFORM.MYFORM1.VISIBLE=.F.
THISFORM.MYFORM1.WIDTH=THISFORM.WIDTH
THISFORM.MYFORM1.WIDTH=THISFORM.HEIGHT
THISFORM.MYFORM1.VISIBLE=.T.
Thisform.Resize()
表单的 Resize 事件中写代码:
IF TYPE("THISFORM.MYFORM1")<>"U"
THISFORM.MYFORM1.VISIBLE=.F.&&此项主要是为了防止,表单尺寸变化时,未显示出的内容出现黑块的现象
IF thisform.MYFORM1.controlcount=0
THISFORM.MYFORM1.WIDTH=THISFORM.WIDTH
THISFORM.MYFORM1.WIDTH=THISFORM.HEIGHT
ELSE
THISFORM.MYFORM1.WIDTH=THISFORM.WIDTH-17
THISFORM.MYFORM1.WIDTH=THISFORM.HEIGHT-17
ENDIF
THISFORM.MYFORM1.VISIBLE=.T.
ENDIF
到此,便算完成了.
若要引用表单类中的内容,可以这样写:
X=THISFORM.MYFORM1.XXXX.VALUE/CAPTION...