Клавиши 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