1

我有一个应用程序,它会根据我选择的速度每秒自动为我点击 1 次按钮。但是,它超时了,所以我需要在这个页面上添加一个刷新。我需要timer1在多次点击后停止我的操作并获得一个WebBrowser1.Refresh(),然后在刷新完成后,timer1点击开始,然后重新完成该过程。我不知道如何开始,因为我以前从未停止过计时器,但我一直在阅读它,它看起来相对容易。这是我正在使用的脚本:

 Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    If RadioButton1.Checked = True Then
        Timer1.Interval = 40
    ElseIf RadioButton2.Checked = True Then
        Timer1.Interval = 100
    Else
        Timer1.Interval = 500
    End If

    If ((WebBrowser1.IsBusy)) Then



    Else
        WebBrowser1.Document.GetElementById("NewGamertag").SetAttribute("value", txtTurbo.Text)


        Timer1.Start()


    End If


End Sub

如您所见,一旦单击按钮一次Timer1.Start()又一次,并且在Timer1.start()'s 代码中,您可以看到单击一次的代码:

WebBrowser1.Document.GetElementById("claimIt").InvokeMember("Click")

它可以工作,但我需要Timer1在多次点击/秒后停止我的浏览器并刷新网络浏览器。我不知道如何开始,如果有人能带领我走上正确的轨道,我将不胜感激。(对不起语法不好/句子跑,我是英语新手)

4

2 回答 2

2

您的代码有几个问题。首先,您似乎没有在任何地方使用Timer_TickTimer_Elapsed事件(我不知道您使用的是哪个 Timer;.NET Framework 中有多个计时器类),这是在间隔完成时将触发的 ACTUAL 事件。其次,定时器可以简单地通过设置它的Enabled属性来启用/禁用,你在任何地方都没有这样做。您还应该查看Enabled属性如何与Interval属性结合使用,以确保它的行为完全符合您的预期。

于 2013-03-31T08:27:57.250 回答
1

最简单但不一定是“最干净”的方法是声明一个公共整数变量。

IE

Public Class Form1
'Public variables are decleared here
Dim number_of_ticks as integer = 0

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

End Sub

在 Timer_Tick 事件中,您只需将 number_of_ticks 变量加 1。

Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    If Not number_of_ticks > 100 Then
'[EDIT:] I forgot to increase the number_of_ticks
    number_of_ticks += 1
        'put your code here
    Else
        'number_of_ticks has exceed the maximum amount of allowed ticks
        Timer1.Stop()
    End If
End Sub

[编辑:] number_of_ticks += 1 每次运行代码时都会增加一次变量。再次,我为我的错误道歉。

要限制允许的刻度数量,只需增加/减少 number_of_ticks 变量。如果您的计时器间隔为 500 毫秒,则 Timer_Tick 事件将每秒引发两次,因此在一秒钟后 - number_of_ticks 将为 2。如果您希望计时器运行 10 秒,请将 number_of_ticks 设置为 20。

如果这没有帮助,请质疑我的回答。

祝你好运!

于 2013-03-31T14:06:56.403 回答