Клавиши Alt и Shift не работают в RichTextBox только на время

Это странный случай, но я даже не знаю, как отладить эту проблему. Моя программа использует два языка ввода (английский и арабский), когда я сначала запускаю программу и нажимаю любую английскую букву, затем нажимаю Alt+shift, чтобы переключить язык, который не работает! затем, когда я нажимаю Ctrl+ Shift, чтобы переключить направление на RightToLeft, затем попробуйте Alt + Shift снова, это работает! и до сих пор работает на все случаи после этого.

на самом деле это может быть мой код, который вызывает эту проблему, но я не могу отладить его! Я старался.

Примечание: в новом RichTextBox без кода он принимает Alt+shift нормально, но он не принимает Ctrl+shift, поэтому я добавил оператор if, чтобы заставить работать ctrl+shift, но это не является причиной проблемы, потому что я пытался удалить его и проблема остается

Примечание 2: я не знаю, меняется ли selection start а также selection length вызывает проблемы, потому что я часто меняю их в myFunction, но возвращаю их в прежнее состояние в конце функции.

мой код, чтобы заставить Ctrl+ Shift работать

    Private Sub RichTextBox_KeyUp(sender As Object, e As KeyEventArgs) Handles RichTextBox.KeyUp
        Try

            ' if Ctrl and Shift are pressed then change text-align ( shift+ctrl OrElse ctrl+shift)
            If (e.Modifiers = Keys.Shift OrElse e.Modifiers = Keys.ShiftKey) AndAlso
                (e.KeyCode = Keys.ControlKey OrElse e.KeyCode = Keys.Control) OrElse _
 _
                ((e.Modifiers = Keys.Control OrElse e.Modifiers = Keys.ControlKey) AndAlso
                (e.KeyCode = Keys.Shift OrElse e.KeyCode = Keys.ShiftKey)) Then

                If RichTextBox.RightToLeft = Windows.Forms.RightToLeft.Yes Then ' if align is rightToLeft 
                    RichTextBox.RightToLeft = Windows.Forms.RightToLeft.No ' then make it LeftToRight

                Else
                    RichTextBox.RightToLeft = Windows.Forms.RightToLeft.Yes
                End If

                RichTextBox.SelectionStart = RichTextBox.TextLength
            End If

            ' Calling subroutine myFunction
            Call myFunction()

        Catch ex As Exception
        End Try
    End Sub

0 ответов

Другие вопросы по тегам