Board logo

标题: [基础] 关于dim 窗体 as New 窗体的问题 [打印本页]

作者: netice    时间: 2006-10-16 00:08     标题: 关于dim 窗体 as New 窗体的问题

在定义窗体 Dim frmA As New frmA的时候
点击不同按扭的时候
给窗体caption赋不同值
已经打开了frmA
偶想若两个窗体完全一样的话就不再加载
但如何判断完全一样呢?
作者: Nothing    时间: 2006-10-16 09:57

有一个办法,就是使用FrmA数组,不过要声明成公共函数。
public FrmA1() as frmA '注意不要重名

在使用的时候调用<
作者: netice    时间: 2006-10-16 17:10

“c=count(FrmA1)”
是什么意思啊?
首先,是不知道已经打开的窗体个数的啊
。。怎么能获得打开FRMA1的个数呢?
作者: Nothing    时间: 2006-10-16 20:32

count(FrmA1)
就是取FrmA1的个数。
作者: 冰点    时间: 2006-10-16 21:28

Forms集合不行吗?
作者: netice    时间: 2006-10-16 23:26

VB6里有这个函数吗?


返回集合中的对象数目。

语法

object.Count
对不?
作者: Nothing    时间: 2006-10-16 23:31

晕了
这些日子天天弄其他语言,搞混了。
其实应当是Ubound函数
作者: netice    时间: 2006-10-16 23:37

这次对了。。哈哈。。。看样子懂德太多也不好啊。。
。。就像现在我总是犹豫是应该用ASP实现呢?还是用FLASH?或者用VB?
作者: netice    时间: 2006-10-16 23:52

c = UBound(FrmA1)
这句老是下标越界。。。过不去啊
好象是UBound(FrmA1)=-1
作者: netice    时间: 2006-10-17 00:09

我发现若是没有事先打开一个FrmA1就会越界。。。。

怎么解决这个问题呢?
一旦有一个已经打开就不会出现问题。。。
若先 判断 UBound(FrmA1) = 0也不行
作者: netice    时间: 2006-10-17 10:17

没办法了。。就想了个垃圾点的办法
先定义个
Private Sub Form_Load()
     ReDim FrmA1(0)
     Set FrmA1(0) = New FrmA
End Sub
再去判断。。就没问题了。。真够晕的。。
用if UBound(FrmA1) <=0 就不行为什么呢
UBound(FrmA1)不是判断下一个的下标吗?
也就是说FrmA1(0)被声明后UBound(FrmA1)=1
若没有FrmA1(0)的话就值应该为UBound(FrmA1)<=0才对啊
作者: netice    时间: 2006-10-17 20:12

窗体数组到是会了。。但是时间数组怎么定义啊
我是想
放一个时间
time1控件
但是下面的都是动态定义一个时间数组


如在模块下定义:Public TimeChat() As Timer

再动态定义的时候
再 ReDim TimeChat(Num)
把 TimeChat(Num).Enabled = True  --------》提示错误


但是原来在
Private Sub TimeChat_Timer(Index As Integer)
    ……
   ……
End Sub
为什么不能执行啊
作者: Nothing    时间: 2006-10-17 21:59

Timer控件可不是Timer,两都不是一样的
Timer控件不需要定义,你在属性中将它的Index设置成0就可以了
使用的时候就不是这样使用了
   a = Timer1.Count
    Load Timer1(a)
作者: Nothing    时间: 2006-10-17 22:01

不过你放那么多TIMER控件,你的程序受的了吗?你其实可以在TIMER控件中处理很多东西,不要放太多的Timer控件。
作者: netice    时间: 2006-10-17 22:40

因为程序需要动态添加时间控件。。
每个控件控制一个事件。。。主要是这些事件完全可以同时进行。。
而一个timer不能处理。。。

原来我是加载个从timer(1)^^^ timer(10)
再循环使用。。但是超过10事件同时进行的时候就会出错了。。。。
若可以根据需要随时添加就比较好

作者: netice    时间: 2006-10-17 22:42

我虽然放了timer控件但是用到的时候才把它Enable=true
作者: Nothing    时间: 2006-10-17 22:56

使用 Load timer1(数组) 就可以用了
控件数组需要使用Load
作者: netice    时间: 2006-10-17 22:59

但怎么判断是否Load过
若已经load过的话再load一次就错了。。。
这个问题好象不太跟上边的窗体一样。。
作者: Nothing    时间: 2006-10-17 23:03

使用 on error resume next 吧
作者: netice    时间: 2006-10-18 00:06

搞定。。。用的是标签
处理下。。呵呵
On Error GoTo ErrorHandler




欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) Powered by Discuz! 6.0.0