注册 登录
编程论坛 VB6论坛

如何在窗体 1 中显示窗体 2 的控件及内容

diponds 发布于 2014-11-24 17:00, 380 次点击
问题1、在窗体1中按下按钮,把窗体2中的fram及fram里的文本框等控件一起显示到窗体3中去。

问题2、在窗体1中按下按钮,在窗体3中增加一个文本框。

不知道该怎么写,请大家指导一下,谢谢了。

[ 本帖最后由 diponds 于 2014-11-24 17:04 编辑 ]
4 回复
#2
风吹过b2014-11-25 08:50
问题1、在窗体1中按下按钮,把窗体2中的fram及fram里的文本框等控件一起显示到窗体3中去。
你只能在 窗体3中,再放一套窗体2中的 frame 及里面一样的控件,设置为隐藏。然后 需要显示时,再显示出来,然后把 窗体2中的内容复制过来。

问题2、在窗体1中按下按钮,在窗体3中增加一个文本框。
要么存在这个文本框,需要显示时,显示出来。
要么这个文本框是一个控件数组,需要时,再增加个元素。使用 load 命令

控件是针对窗体来的,不能跨窗体复制或移动控件。
VB里的控件,需要事前定义,它标识符 只能是窗体全局静态的,
不能使用程序里的生成一个 程序里不存在 标识符的 控件。
#3
diponds2014-11-25 10:25
谢谢。另外你说的那个控件数组是不是也要提前在窗体3中存在才能load?
#4
风吹过b2014-11-25 11:52
控件数组是不是也要提前在窗体3中存在才能load?
控件数组,在窗体上最少要存在一个元素,才能 load 后面的元素。
加载的元素,默认是不显示,你需要重新定位,再显示出来。

如窗体上有一个 text1(0) 控件,那么就可以 load text1(1)  这个元素。
可以不需要 按顺序加载,如你可以继续  load text1(5) 这个元素。

可以使用 for each 变量 in 集合  的方式访问不连续的控件数组。

不需要元素时,如使用 unload text1(1) 删掉这个元素。
#5
xzlxzlxzl2014-11-25 13:00
回复 3 楼 diponds
控件也可以不需要初始元素在运行中动态加载,只是稍显麻烦,下述代码可加载并显示一个文本框:

   Dim abcde As TextBox
   Set abcde = Controls.Add("vb.textbox", "abcde")
   abcde.Top = 0
   abcde.Left = 0
   abcde.Width = 900
   abcde.Height = 300
   abcde.Visible = True
1