RadGridView exposes several useful properties and events, which can help you control the keyboard interaction and get notified when keyboard events occur. Moreover, using the keyboard you can perform some common tasks, such as:
Change the selection - use the arrow keys to change your selection. To select multiple rows hold the Shift\Ctrl key pressed and use the arrow keys or the mouse to select the desired rows.
Sort by multiple columns - just hold the Shift key pressed and click all column headers by which you wish to sort your data.
Start cell edit - press F2 and the current cell will enter in edit mode.
End cell edit - press Enter while the cell is in edit mode. This will confirm the changes you've made.
Cancel cell edit - press Escape while the cell is in edit mode. This will rollback the changes you've made.
Add new row - press Insert and new row will be inserted automatically.
Delete existing row - users can delete (if supported by the collection assigned to the ItemsSource of RadGridView) selected items using DELETE key. This feature can be controlled with RadGridView's CanUserDeleteRows property. Additional to this, the delete command won't be executed if the IsReadOnly property of RadGridView is true or the selected row is in edit mode.
In case you require to utilize different commands corresponding to the keyboard interaction, you may take advantage of the IKeyboardCommandProvider interface and implement your custom logic. Please check this article for further information.
In the following table you can find some of the actions and the respective combination that invokes them:
|Commit the changes(edit mode) and select next row
|Select next row
|Put current cell in edit mode
|Cancel the editing of the current cell
|Insert new row
|Delete selected row
|Focus next cell on the left
|Focus next cell on the right
|Focus next cell below
|Focus next cell above
|Focus first cell
|Focuses first cell of last row
|Focus first cell of selected row
|Focus last cell of selected row
|Focuses next cell
|Tab + Shift
|Focuses previous cell
|Ctrl + C
|Ctrl + V
|Ctrl + F
|Show Search Panel
|Collapse a particular item in the hierarchy
|Expand a particular item in the hierarchy
The actions might vary depending on the mode of RadGridView and different property combinations.
You can find more information regarding RadGridView`s commands in the Commands Overview article.
Set the IsTabStop property to include/exclude the control in the tab navigation cycle. If this property is set to True, then the control will be included; if it is False it will be skipped.
The TabIndex property defines the index of the control in the tab navigation cycle. The lower the number is, the earlier the control will be focused while navigating using the Tab key. If you set this property, do not forget to set IsTabStop to True.
The TabStopMode property of the column denotes if its cells could gain focus with the TAB key navigation.
If you are looking for a better way to control how the tab navigation cycles inside the RadGridView, use the property TabNavigation. You can set it to one of these three possible values:
Here is a list of the common keyboard events exposed by the RadGridView, GridViewRow and GridViewCell objects:
KeyUp - occurs when the user releases a keyboard key. The type of the passed event arguments is KeyEventArgs.
KeyDown - occurs when the user presses a keyboard key. The type of the passed event arguments is KeyEventArgs.
In Example 1 you can see how to subscribe to KeyDown and KeyUp events from XAML.
Example 1: Subscribe to KeyDown and KeyUp events
<telerik:RadGridView x:Name="radGridView" KeyDown="radGridView_KeyDown" KeyUp="radGridView_KeyUp"/>
It is always a good practice to attach your event handlers in the XAML, whenever your application logic allows this.
The implementation of both event handlers radGridView_KeyDown and radGridView_KeyUp is located in the code-behind file (C# or VB.NET) and looks like this:
Example 2: Implementation of KeyUp and KeyDown events
private void radGridView_KeyDown(object sender, KeyEventArgs e)
MessageBox.Show("The pressed key is: " + e.Key.ToString());
private void radGridView_KeyUp(object sender, KeyEventArgs e)
MessageBox.Show("The released key is: " + e.Key.ToString());
Private Sub radGridView_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
MessageBox.Show("The pressed key is: " & e.Key.ToString())
Private Sub radGridView_KeyUp(ByVal sender As Object, ByVal e As KeyEventArgs)
MessageBox.Show("The released key is: " & e.Key.ToString())
You can attach to the other keyboard events in the same way.