Vb.net 窗体在单击按钮后失去焦点

Vb.net 窗体在单击按钮后失去焦点,vb.net,forms,Vb.net,Forms,单击下面代码中的开始按钮时,表单似乎失去焦点,我需要单击停止按钮两次以停止计数。(首先单击以激活表单,然后单击按钮)是否有人可以解释此行为或提供更好的替代方案 Public Class Form1 Dim testrunning As Boolean Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click

单击下面代码中的开始按钮时,表单似乎失去焦点,我需要单击停止按钮两次以停止计数。(首先单击以激活表单,然后单击按钮)是否有人可以解释此行为或提供更好的替代方案

Public Class Form1
    Dim testrunning As Boolean

    Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
        testrunning = True
        test()
    End Sub

    Private Sub btnStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStop.Click
        testrunning = False
    End Sub

    Private Sub test()
        Dim count As Integer

        While testrunning = True
            count += 1
            TextBox1.Text = count.ToString
            System.Threading.Thread.Sleep(100)
            Application.DoEvents()
        End While
    End Sub
End Class

表单没有失去焦点。单击“开始”按钮后,“停止”按钮不会获得焦点-可以在btnStart\u单击中为其设置焦点(btnStop.focus())。 另一个问题是您应该更改测试函数。它更像是一个基准。 阅读一些关于为什么要使用Application.DoEvents和的文章。最好使用or。 我认为在您的代码中,Application.DoEvents首先只让停止按钮获得焦点,您需要再次单击以执行单击事件