Category / Section
How to suppress KeyDown event in WinForms GridGroupingControl?
1 min read
Suppress KeyDown event
In order to suppress the key down event, the SuppressKeyPress property in TableControlCurrentCellKeyDown event can be used. Then overriding of ProcessCmdKey() method gets the keys data.
C#
// form // Trigger the required event. gridGroupingControl1.TableControlCurrentCellKeyDown += gridGroupingControl1_TableControlCurrentCellKeyDown; void gridGroupingControl1_TableControlCurrentCellKeyDown(object sender, GridTableControlKeyEventArgs e) { e.Inner.SuppressKeyPress = true; } protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { Keys keyCode = keyData & Keys.KeyCode; switch (keyCode) { case Keys.Down: MessageBox.Show("KeyDown Event suppressed"); break; case Keys.Up: MessageBox.Show("KeyDown Event suppressed"); break; case Keys.Right: MessageBox.Show("KeyDown Event suppressed"); break; case Keys.Left: MessageBox.Show("KeyDown Event suppressed"); break; case Keys.PageUp: MessageBox.Show("KeyDown Event suppressed"); break; case Keys.PageDown: MessageBox.Show("KeyDown Event suppressed"); break; } return base.ProcessCmdKey(ref msg, keyData); }
VB
' form() ' Trigger the required event. Private gridGroupingControl1.TableControlCurrentCellKeyDown += AddressOf gridGroupingControl1_TableControlCurrentCellKeyDown Private Sub gridGroupingControl1_TableControlCurrentCellKeyDown(ByVal sender As Object, ByVal e As GridTableControlKeyEventArgs) e.Inner.SuppressKeyPress = True End If End Sub Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean Dim keyCode As Keys = keyData And Keys.KeyCode Select Case keyCode Case Keys.Down MessageBox.Show("KeyDown Event suppressed") break Case Keys.Up MessageBox.Show("KeyDown Event suppressed") break Case Keys.Right MessageBox.Show("KeyDown Event suppressed") break Case Keys.Left MessageBox.Show("KeyDown Event suppressed") break Case Keys.PageUp MessageBox.Show("KeyDown Event suppressed") break Case Keys.PageDown MessageBox.Show("KeyDown Event suppressed") break End Select Return MyBase.ProcessCmdKey(msg, keyData) End Function
Screenshot
Samples: