在自定义类中有一个Timer对象,但Timer中的动作一直没有执行,怎么办?

downdown518518 2011-08-06 07:33:23
需求:
在自定义类(clsUser中)有一个过程add,需要在add过程中创建一个定时器objTimer对象,另外定时器执行的动作也要写在自定义类中.

调用:
需要在窗体中调用自定义类的add过程,并能执行定时器中的动作。

问题:如何在窗体中调用自定义类时,能执行类中的定时器有关的动作?谢谢!

定义类中的部分代码如下:

Private WithEvents objTimer As Timer
public function add(byval objForm as Form)
...
set objTimer = objForm.Controls.Add("VB.Timer", "objTimer")

objTimer.Interval = 1000
objTimer.Enabled = True
...
end function

Private Sub objTimer_Timer()
程序一直不执行这里
end sub


在窗体中调用自定义类,代码如下:

Dim objUser as new clsUser
call objUser.add(frmUser)

...全文
145 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
downdown518518 2011-08-06
  • 打赏
  • 举报
回复

哥们,你太牛X了。原来要将Dim aaa As New Class1写在过程外面才行,而写在过程内部就不行!~~你分析得有道理。

该问题,我向很多老手咨询过,都说timer中的执行过程不能写在类中(写了也是白写,不会执行)。




[Quote=引用 7 楼 spt_petrolor 的回复:]
使用过程

VB code

Dim aaa As New Class1
Private Sub Form_Load()
Call aaa.add(Form1)
End Sub



类文件

VB code

Private WithEvents objTimer As Timer
Public Function add(ByVal objForm As Form……
[/Quote]
downdown518518 2011-08-06
  • 打赏
  • 举报
回复

Dim objUser as new clsUser
call objUser.add(frmUser)
这两句代码,我是放在某一个窗体的Form_Load中的。

[Quote=引用 7 楼 spt_petrolor 的回复:]
使用过程

VB code

Dim aaa As New Class1
Private Sub Form_Load()
Call aaa.add(Form1)
End Sub



类文件

VB code

Private WithEvents objTimer As Timer
Public Function add(ByVal objForm As Form……
[/Quote]
王二.麻子 2011-08-06
  • 打赏
  • 举报
回复
使用过程

Dim aaa As New Class1
Private Sub Form_Load()
Call aaa.add(Form1)
End Sub


类文件

Private WithEvents objTimer As Timer
Public Function add(ByVal objForm As Form)

Set objTimer = objForm.Controls.add("VB.Timer", "objTimer")

objTimer.Interval = 1000
objTimer.Enabled = True

End Function

Private Sub objTimer_Timer()
Stop
End Sub

为什么我在ide环境能stop?

难道你吧对类的使用
Dim objUser as new clsUser
call objUser.add(frmUser)
这两行是放在某个过程里面的?过程肯定不行啊,过程结束的时候要释放类对象,类对象里面对引用也要释放,类对象都释放了,也不会有机会执行类对象相应的程序了

downlele518 2011-08-06
  • 打赏
  • 举报
回复
我晕了你,你怎么回事。你是手动回复的,还是用软件自动问题的!!~~~~~

你回复的代码无效呀。。。

[Quote=引用 5 楼 patrickkong 的回复:]
Private WithEvents objTimer As Timer
[/Quote]
  • 打赏
  • 举报
回复
Private WithEvents objTimer As Timer
downdown518518 2011-08-06
  • 打赏
  • 举报
回复
难道就这么沉下去了?请高人出来解答。

downdown518518 2011-08-06
  • 打赏
  • 举报
回复
你这代码就是我程序中的其中一句呀,说明不了什么吧。。。请仔细看问题。谢谢!
[Quote=引用 1 楼 patrickkong 的回复:]
set objTimer = objForm.Controls.Add("VB.Timer", "objTimer")
[/Quote]
downdown518518 2011-08-06
  • 打赏
  • 举报
回复
你这段代码能说明什么?
[Quote=引用 1 楼 patrickkong 的回复:]
set objTimer = objForm.Controls.Add("VB.Timer", "objTimer")
[/Quote]
  • 打赏
  • 举报
回复
set objTimer = objForm.Controls.Add("VB.Timer", "objTimer")

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧