以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]自动下一行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=161769)

--  作者:天一生水
--  发布时间:2021/3/29 8:17:00
--  [求助]自动下一行
老师好!
下面的代码在遍历朗读[单词]列时,光标同时定位到该行。但是实际上是光标直接定位到了最后一行,朗读依然是一行一行的。这是哪里的问题?
谢谢!
...
Speaker.Speak("", DotNetSpeech.SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak) \'停止之前的朗读
Dim yy As WinForm.ComboBox = Forms("数据表").Controls("语音库")
Speaker.Rate = dr("默认语速")  \'设置语速
For idx As Integer = 0 To Tables("数据表_table1").Rows.Count - 1
    Dim vl As String = Tables("数据表_table1").Rows(idx)("单词") \'获得要朗读的文本
    Speaker.Voice = Speaker.GetVoices(String.Empty,String.Empty).Item(yy.SelectedIndex)
    Speaker.Speak(vl, DotNetSpeech.SpeechVoiceSpeakFlags.SVSFlagsAsync) \'异步朗读
    Tables("数据表_table1").Position = idx
    Application.DoEvents  \'代码即刻生效
Next

--  作者:有点蓝
--  发布时间:2021/3/29 8:29:00
--  
因为是异步朗读。遍历代码会继续执行,执行完毕肯定就定位到了最后一行,但是等待朗读的行仍然在后台排队,等待前面的朗读完成。