回复TechnoFantasy() 一次要打开两个或两个以上窗口,可以将源代码中的“Newform”声明成数组,如果无法确定要打开的个数,可以声明为动态数组。 Sub AddNewForm() For N = 1 To 8 Dim Newform(1 to 8) As New Form1 AllNumber = AllNumber + 1 Forms.Add Newform Newform.Show next end sub
回复TechnoFantasy() 一次要打开两个或两个以上窗口,可以将源代码中的“Newform”声明成数组,如果无法确定要打开的个数,可以声明为动态数组。 Sub AddNewForm() For N = 1 To 8 Dim Newform(1 to 8) As New Form1 AllNumber = AllNumber + 1 Forms.Add Newform Newform(allnumber).Show next end sub
to limengchen: 不知道你在学vb之前有没有学过qb。微软早在qb中就将next n中的n剩去。根本不是next的问题。 to beandog: 我把你这段代码在我的机器上运行了一下,果然溢出。后来仔细一看,呵呵,不溢出才怪呢!你在每次执行form1的form_load事件时,都要执行AddNewForm子程序。同时产生8个和form1完全一样的窗体,这8个窗体每个再产生8个子窗体......由此下去就是8^n个窗体。你在插十个128M的内存也不够! 我不知道你的AddNewForm是干什么用的但我想你如果还坚持使用它的话,我建议你做一个和form1一样的form2,在form1中调用AddNewForm生成8个form2.就不会产生循环调用的后果了。
to lujianjian 1、其实原程序中是有next的,只不过因为粗心,少加了。给各位带来的不便,还请原谅。 2、allnumber、n我都定义了,只是没写出来。定义如下 public allnumber as Integer public N as Integer 另外,多谢lujianjian提醒!我确实有这种习惯,以后一定多加注意。 3、可能是我的表述有问题。这里我在说明一下。 此段代码没有加在任何控件(包括表单)的任何事件里,而是放在一个公用模块里。是这样的: 打开工程后,单击下拉菜单的“工程”项,选择“添加模块”,然后将代码放入模块中。在一个command控件的单击事件中调用。 可能这样说明还会用一些朋友不明白,这样吧,如果谁想要源程序,请email: [email protected] 4、最近我已经解决这个问题了:原因是表单中的八个Flatbttn控件(程序员大本营中有下载)。把这八个按钮去掉就一切ok了。在此提醒各位朋友小心使用此控件,尤其是在MDI的自窗体中。另外,我还想向wqspedia2朋友道歉,那天看了你的留言,我真有点生气可能说了难听的话,请一定原谅。谢谢!
一次要打开两个或两个以上窗口,可以将源代码中的“Newform”声明成数组,如果无法确定要打开的个数,可以声明为动态数组。
Sub AddNewForm()
For N = 1 To 8
Dim Newform(1 to 8) As New Form1
AllNumber = AllNumber + 1
Forms.Add Newform
Newform.Show
next
end sub
一次要打开两个或两个以上窗口,可以将源代码中的“Newform”声明成数组,如果无法确定要打开的个数,可以声明为动态数组。
Sub AddNewForm()
For N = 1 To 8
Dim Newform(1 to 8) As New Form1
AllNumber = AllNumber + 1
Forms.Add Newform
Newform(allnumber).Show
next
end sub
不知道你在学vb之前有没有学过qb。微软早在qb中就将next n中的n剩去。根本不是next的问题。
to beandog:
我把你这段代码在我的机器上运行了一下,果然溢出。后来仔细一看,呵呵,不溢出才怪呢!你在每次执行form1的form_load事件时,都要执行AddNewForm子程序。同时产生8个和form1完全一样的窗体,这8个窗体每个再产生8个子窗体......由此下去就是8^n个窗体。你在插十个128M的内存也不够!
我不知道你的AddNewForm是干什么用的但我想你如果还坚持使用它的话,我建议你做一个和form1一样的form2,在form1中调用AddNewForm生成8个form2.就不会产生循环调用的后果了。
而且你调用这个方法的form就是你要打开的form1???
太夸张了吧……???
我新建立了一个模块来储存这段代码。
这个问题真有够无聊,特可笑的是作者根本没有认真思考就拿出来贴。
喂,能不能文明点儿?我才上高二!!瞧瞧,问点问题就说这种话,这就是中国程序员的素质吗?不就是比我多生几年吗?
不要打击人的积极性嘛:(
你恐怕还没看懂我的意思吧?
建议回家好好学学语文:)
就这也敢自命高手?!
请其他好心人多多帮助解决此问题,谢了!
把for...next 去掉,然后在开始的地方加上 if forms.count>allnumber then exit sub
在 form_activate()中只要运行一次 call addnewform 就能加入 allnumber 个窗口但在command1_click()中要运行allnumber 次才可以,所以最好给函数加一个参数:allnumber
1,没有Next,应该编译不通过才对。
2。AllNumber ,N 都没有定义,虽然可以执行,绝对不是好习惯。
3。wqspedia2(wqspedia2)兄说得我也赞同,不知beandog兄为什么说他没理解意思?麻烦说说你的意思。
1、其实原程序中是有next的,只不过因为粗心,少加了。给各位带来的不便,还请原谅。
2、allnumber、n我都定义了,只是没写出来。定义如下
public allnumber as Integer
public N as Integer
另外,多谢lujianjian提醒!我确实有这种习惯,以后一定多加注意。
3、可能是我的表述有问题。这里我在说明一下。
此段代码没有加在任何控件(包括表单)的任何事件里,而是放在一个公用模块里。是这样的:
打开工程后,单击下拉菜单的“工程”项,选择“添加模块”,然后将代码放入模块中。在一个command控件的单击事件中调用。
可能这样说明还会用一些朋友不明白,这样吧,如果谁想要源程序,请email: [email protected]
4、最近我已经解决这个问题了:原因是表单中的八个Flatbttn控件(程序员大本营中有下载)。把这八个按钮去掉就一切ok了。在此提醒各位朋友小心使用此控件,尤其是在MDI的自窗体中。另外,我还想向wqspedia2朋友道歉,那天看了你的留言,我真有点生气可能说了难听的话,请一定原谅。谢谢!