为什么 RaiseEvent 不起作用

[复制链接]
查看11 | 回复6 | 2021-1-27 06:31:08 | 显示全部楼层 |阅读模式
以下代码为测试自定义类中RaiseEvent,测试结果发现RaiseEvent不起作用。不知为何?请大神指教!
PublicClassFrmTest
DimmTextAsNewTimerState
FriendWithEventsmyUpdatetimeAsTimerState
FriendWithEventsmyFinishedAsTimerState
PrivateSubFrmTest_Load(senderAsSystem.Object,eAsSystem.EventArgs)HandlesMyBase.Load
Button1.Text="Start"
EndSub
PrivateSubButton1_Click(senderAsSystem.Object,eAsSystem.EventArgs)HandlesButton1.Click
mText.StartCountdown(10.0,0.1)
EndSub
PrivateSubmyUpdatetime_UpdateTime(CountdownAsDouble)HandlesmyUpdatetime.UpdateTime
TextBox1.Text=Format(Countdown,"##0.0")
'UseDoEventstoallowthedisplaytorefresh.
My.Application.DoEvents()
EndSub
PrivateSubmyFinished_Finished()HandlesmyFinished.Finished
MsgBox("mainfin")
TextBox1.Text="Done"
EndSub
EndClass
PublicClassTimerState
PublicEventUpdateTime(ByValCountdownAsDouble)
PublicEventFinished()
PublicSubStartCountdown(ByValDurationAsDouble,ByValIncrementAsDouble)
DimStartAsDouble=DateAndTime.Timer
DimElapsedTimeAsDouble=0
DimSoFarAsDouble=0
DoWhileElapsedTimeSoFar+IncrementThen
SoFar+=Increment
RaiseEventUpdateTime(Duration-SoFar)
EndIf
ElapsedTime=DateAndTime.Timer-Start
Loop
MsgBox("fin")
RaiseEventFinished()
EndSub
EndClass
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:31:08 | 显示全部楼层
程序有没有进入自定义类RaiseEvent
回复

使用道具 举报

千问 | 2021-1-27 06:31:08 | 显示全部楼层
单步运行一下
回复

使用道具 举报

千问 | 2021-1-27 06:31:08 | 显示全部楼层
这定时器不是这样写的吧,在循环里抛事件,这不合适吧。
一般定时器都是用系统提供的,因为他有非托管资源,可以包装成倒计时,但在循环里写倒计时,这应该是有问题的。
回复

使用道具 举报

千问 | 2021-1-27 06:31:08 | 显示全部楼层
运行到MsgBox("fin"),到RaiseEvent,没有任何反应。
回复

使用道具 举报

千问 | 2021-1-27 06:31:08 | 显示全部楼层
PrivateSubFrmTest_Load(senderAsSystem.Object,eAsSystem.EventArgs)HandlesMyBase.Load
Button1.Text="Start"
'需要加mtxt的处理sub
Addhandlermtxt.Finished,AddressofDoEvent
EndSub
privatesubDoEvent(byvalsenderasobject,byvaleaseventargs)
'响应事件内容
endsub
另外RaiseEventFinished()里面需要传递sender和evnetargs
用于传递消息内容,不需要的话就用nothing,nothing
回复

使用道具 举报

千问 | 2021-1-27 06:31:08 | 显示全部楼层
DimmTextAsNewTimerState
定义的时候
看看是否需要加withevent关键字
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行