Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当按下空格键时,如何清除文本框的所有内容?VB.Net_Vb.net_Winforms - Fatal编程技术网

当按下空格键时,如何清除文本框的所有内容?VB.Net

当按下空格键时,如何清除文本框的所有内容?VB.Net,vb.net,winforms,Vb.net,Winforms,我正在创建一个简单的打字测试程序 我希望空格键触发检查键入的单词是否正确,然后清除文本框的内容 这里发生的情况是,按下空格键时,第一个键入的字将起作用并计数,并且键入的字将被清除,但空格字符仍然保留,因此下一个键入的字将包含空格字符,并且将被错误读取 我尝试在txtInput.Clear()应该放置的位置进行交换,但结果是相同的问题 Private Sub txtInput_TextChanged(sender As Object, e As KeyEventArgs) Handles txtI

我正在创建一个简单的打字测试程序

我希望空格键触发检查键入的单词是否正确,然后清除文本框的内容

这里发生的情况是,按下空格键时,第一个键入的字将起作用并计数,并且键入的字将被清除,但空格字符仍然保留,因此下一个键入的字将包含空格字符,并且将被错误读取

我尝试在
txtInput.Clear()
应该放置的位置进行交换,但结果是相同的问题

Private Sub txtInput_TextChanged(sender As Object, e As KeyEventArgs) Handles txtInput.KeyDown

    If e.KeyValue = Keys.Space Then
        Space()
    End If

End Sub

Public Function Space()

    If txtInput.Text = txtWord.Text Then
        ctr = CInt(txtWord.TextLength)
        charTotal = charTotal + ctr
        lblScore.Text = charTotal.ToString
    End If

    txtInput.Clear()
    txtWord.Text = rdmWord()

End Function

KewDown
事件中
文本框的值尚未设置。因此,使用
KeyUp
Event
,如下代码所示

Private Sub txtInput_KeyUp(sender As Object, e As KeyEventArgs) Handles txtInput.KeyUp
    If e.KeyValue = Keys.Space Then
        Space()
    End If
End Sub

KewDown
事件中
文本框的值尚未设置。因此,使用
KeyUp
Event
,如下代码所示

Private Sub txtInput_KeyUp(sender As Object, e As KeyEventArgs) Handles txtInput.KeyUp
    If e.KeyValue = Keys.Space Then
        Space()
    End If
End Sub
您还可以在此处覆盖并捕获空格键:

Protected Overrides Function ProcessCmdKey(ByRef msg As Message, keyData As Keys) As Boolean
    If keyData = Keys.Space Then
        If Me.ActiveControl Is txtInput Then
            Space()
            Return True ' suppress space
        End If
    End If
    Return MyBase.ProcessCmdKey(msg, keyData)
End Function
如果要留出空间或输入,请更改为:

    If keyData = Keys.Space Or keyData = Keys.Enter Then
您还可以在此处覆盖并捕获空格键:

Protected Overrides Function ProcessCmdKey(ByRef msg As Message, keyData As Keys) As Boolean
    If keyData = Keys.Space Then
        If Me.ActiveControl Is txtInput Then
            Space()
            Return True ' suppress space
        End If
    End If
    Return MyBase.ProcessCmdKey(msg, keyData)
End Function
如果要留出空间或输入,请更改为:

    If keyData = Keys.Space Or keyData = Keys.Enter Then

添加
e.supersKeypress=True
以防止添加空间。添加
e.supersKeypress=True
以防止添加空间。