Member 13986318 Ответов: 1

Я хочу знать, сколько раз, когда я, используя "пробел" на VB.NET


В этом richtextbox я хочу знать, сколько раз использую "Backspace" на клавиатуре. До сих пор я уже пользовался этим кодом, но что-то не так. это сценарий, при нажатии клавиши Enter, окно сообщения покажет, сколько раз используется Backspace. Пожалуйста, помогите мне..

Что я уже пробовал:

Public Class Form1
    Private Sub RichTextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles RichTextBox1.KeyDown
        Dim count As Integer

        If (e.KeyCode = Keys.Back) Then
            count = count + 1
        ElseIf (e.KeyCode = Keys.Enter) Then
            MessageBox.Show(count)
        End If

    End Sub
End Class

1 Ответов

Рейтинг:
1

OriginalGriff

count это локальная переменная, она существует только до тех пор, пока метод не завершится, и воссоздается и повторно инициализируется каждый раз, когда метод вызывается новым событием.

Вам нужно сделать его искусством объявления вашего класса, переместив его за пределы метода:

Public Class Form1
    Private count As Integer = 0

    Private Sub RichTextBox1_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
        If (e.KeyCode = Keys.Back) Then
            count = count + 1
        ElseIf (e.KeyCode = Keys.Enter) Then
            MessageBox.Show(count)
        End If
    End Sub
End Class


Richard Deeming

Кроме того, можно использовать очень неприятный ВБ построить:
Статический (Visual Basic) | Microsoft Docs[^]

Private Sub RichTextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles RichTextBox1.KeyDown
    Static count As Integer = 0
    
    If (e.KeyCode = Keys.Back) Then
        count = count + 1
    ElseIf (e.KeyCode = Keys.Enter) Then
        MessageBox.Show(count)
    End If
End Sub