Category / Section
How to get the selected record when Enter key is pressed in WinForms DataGrid (SfDataGrid)?
2 mins read
Show the selected record while pressing the enter key
In SfDataGrid, you can retrieve and process the selected record when pressing Enter key on the current cell using the SfDtaGrid.CurrentCellKeyDown event.
The following code shows how to get and process the selected record when pressing Enter key on a record cell.
C#
this.sfDataGrid.CurrentCellKeyDown += sfDataGrid_CurrentCellKeyDown; void sfDataGrid_CurrentCellKeyDown(object sender, Syncfusion.WinForms.DataGrid.Events.CurrentCellKeyEventArgs e) { if(e.KeyEventArgs.KeyCode == Keys.Enter) { if (this.sfDataGrid.SelectedItem != null) { var selectedRecord = this.sfDataGrid.SelectedItem as OrderInfo; var orderDate = selectedRecord.OrderDate; // Do your customization here. } e.KeyEventArgs.SuppressKeyPress = true; } }
VB
AddHandler Me.sfDataGrid.CurrentCellKeyDown, AddressOf sfDataGrid_CurrentCellKeyDown Private Sub sfDataGrid_CurrentCellKeyDown(ByVal sender As Object, ByVal e As Syncfusion.WinForms.DataGrid.Events.CurrentCellKeyEventArgs) If e.KeyEventArgs.KeyCode = Keys.Enter Then If Me.sfDataGrid.SelectedItem IsNot Nothing Then Dim selectedRecord = TryCast(Me.sfDataGrid.SelectedItem, OrderInfo) Dim orderDate = selectedRecord.OrderDate ' Do your customization here. End If e.KeyEventArgs.SuppressKeyPress = True End If End Sub
Samples:
C#: CurrentRecord_CS
VB: CurrentRecord_VB
The following code shows how to get and process the group records when pressing Enter key on a group caption.
C#
this.sfDataGrid.CurrentCellKeyDown += sfDataGrid_CurrentCellKeyDown; void sfDataGrid_CurrentCellKeyDown(object sender, Syncfusion.WinForms.DataGrid.Events.CurrentCellKeyEventArgs e) { if (e.KeyEventArgs.KeyCode == Keys.Enter && this.sfDataGrid.SelectedNodeEntries.Count > 0) { var selectedEntry = this.sfDataGrid.SelectedNodeEntries[this.sfDataGrid.SelectedNodeEntries.Count - 1]; if (selectedEntry != null && selectedEntry.IsCaptionRow) { var group = selectedEntry.NodeEntry as Group; var groupRecordEntry = group.Details as GroupRecordEntry; var date = (groupRecordEntry.UnfilteredRecords[0] as OrderInfo).OrderDate; var record = (groupRecordEntry.Records[0] as RecordEntry).Data as OrderInfo; var orderDate = record.OrderDate; //Do your customizations here. } e.KeyEventArgs.SuppressKeyPress = true; } }
VB
AddHandler Me.sfDataGrid.CurrentCellKeyDown, AddressOf sfDataGrid_CurrentCellKeyDown Private Sub sfDataGrid_CurrentCellKeyDown(ByVal sender As Object, ByVal e As Syncfusion.WinForms.DataGrid.Events.CurrentCellKeyEventArgs) If e.KeyEventArgs.KeyCode = Keys.Enter AndAlso Me.sfDataGrid.SelectedNodeEntries.Count > 0 Then Dim selectedEntry = Me.sfDataGrid.SelectedNodeEntries(Me.sfDataGrid.SelectedNodeEntries.Count - 1) If selectedEntry IsNot Nothing AndAlso selectedEntry.IsCaptionRow Then Dim group = TryCast(selectedEntry.NodeEntry, Group) Dim groupRecordEntry = TryCast(group.Details, GroupRecordEntry) Dim [date] = (TryCast(groupRecordEntry.UnfilteredRecords(0), OrderInfo)).OrderDate Dim record = TryCast((TryCast(groupRecordEntry.Records(0), RecordEntry)).Data, OrderInfo) Dim orderDate = record.OrderDate 'Do your customizations here. End If e.KeyEventArgs.SuppressKeyPress = True End If End Sub
Samples:
C# : GroupRecords_CS
VB : GroupRecords_VB