TX Text Control inserts a tab character when the key combination CTRL+i is used. This short code sample shows you how to trap these keystrokes in order to implement some other behavior, such as formatting the currently selected characters to italic.

Generally, the KeyPress event can be used to trap keystrokes and to make void their values. Unfortunately, the KeyAscii value in the KeyPress event is 9 on pressing CTRL+i, which is the same value as a normal tab character. Therefore, we have to use a global flag that returns the state of the CTRL key.

Consider the following:

Dim ctrl_key_state As Boolean

Private Sub TXTextControl1_KeyDown(KeyCode As Integer, Shift As Integer)
    If Shift = 2 Then
        ctrl_key_state = True
    Else
        ctrl_key_state = False
    End If
End Sub

Private Sub TXTextControl1_KeyPress(KeyAscii As Integer)
    If ctrl_key_state = True Then
        If KeyAscii = 9 Then
            KeyAscii = 0
            If TXTextControl1.FontItalic = 0 Or TXTextControl1.FontItalic = 2 Then
                TXTextControl1.FontItalic = 1
            Else
                TXTextControl1.FontItalic = 0
            End If
        End If
    End If
End Sub