Чтобы отключить комбинации клавиш Control+Shift+<
или Control+Shift+>
, необходимо реализовать следующий обработчик событий KeyDown для элемента управления RichTextBox :
Private Sub RichTextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles RichTextBox1.KeyDown
' disable the key combination of
' "control + shift + <"
' or
' "control + shift + >"
e.SuppressKeyPress = e.Control AndAlso e.Shift And (e.KeyValue = Keys.Oemcomma OrElse e.KeyValue = Keys.OemPeriod)
End Sub
Этот код запрещает пользователю изменять размер шрифта в данном RichTextBox
с помощью команд клавиатуры.
Чтобы отключить изменение размера шрифта с помощью Ctrl плюс колесико мыши, единственный способ, которым язнать, как это сделать, - сделать пользователя control
, который наследует от RichTextBox
.
После того, как вы сделали это, единственное, что вам нужно сделать, это переопределить процедуру WndProc
, чтобы она эффективно отключала любые сообщения, когда вращается колесо прокрутки и нажата кнопка Ctrl .См. Код ниже для реализации UserControl
, полученного из RichTextBox
:
Public Class DerivedRichTextBox
Inherits RichTextBox
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
' windows message constant for scrollwheel moving
Const WM_SCROLLWHEEL As Integer = &H20A
Dim scrollingAndPressingControl As Boolean = m.Msg = WM_SCROLLWHEEL AndAlso Control.ModifierKeys = Keys.Control
'if scolling and pressing control then do nothing (don't let the base class know),
'otherwise send the info down to the base class as normal
If (Not scrollingAndPressingControl) Then
MyBase.WndProc(m)
End If
End Sub
End Class