[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Collapse]WPF Controls
 [Expand]What's Installed
 [Expand].NET Core 3 Support
 [Expand]Common Concepts
 [Expand]MVVM Framework
 [Collapse]Controls and Libraries
  [Collapse]Data Grid
   [Expand]Getting Started
   [Expand]Implementation Details
   [Expand]Grid View Data Layout
   [Expand]Binding to Data
   [Expand]Master-Detail Data Representation
   [Expand]Data Editing and Validation
   [Expand]Filtering and Searching
   [Expand]Data Summaries
   [Expand]Paging and Scrolling
   [Collapse]Focus, Navigation, Selection
     Multiple Row Selection
     Multiple Cell Selection
     Obtaining Selected Rows and Cells
     Selection Rectangle
   [Expand]Conditional Formatting
   [Expand]Appearance Customization
   [Expand]MVVM Enhancements
   [Expand]Printing and Exporting
   [Expand]Performance Improvement
   [Expand]Design-Time Features
   [Expand]Visual Elements
   [Expand]End-User Capabilities
  [Expand]Ribbon, Bars and Menu
  [Expand]Charts Suite
  [Expand]Pivot Grid
  [Expand]Rich Text Editor
  [Expand]Tree List
  [Expand]Gauge Controls
  [Expand]Map Control
  [Expand]Layout Management
  [Expand]Windows Modern UI
  [Expand]Data Editors
  [Expand]Navigation Controls
  [Expand]Spell Checker
  [Expand]Property Grid
  [Expand]PDF Viewer
  [Expand]TreeMap Control
  [Expand]Gantt Control
  [Expand]Diagram Control
  [Expand]Windows and Utility Controls
   Dialogs, Notifications and Panels
  [Expand]Scheduler (legacy)
 [Expand]Scaffolding Wizard
  Redistribution and Deployment
  Get More Help
 [Expand]API Reference
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Report and Dashboard Server
[Expand]eXpressApp Framework
[Expand]eXpress Persistent Objects
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)


Moving the cell focus in code may be useful when you need to facilitate end user input. This enables you to move focus to the desired cells automatically, so end users don't need to navigate themselves. This topic describes the basics of focus movement between cells.

Expanded Focusing Cells


Data cells can be focused if the DataViewBase.NavigationStyle property is set to GridViewNavigationStyle.Cell.

Focusing Cells

The focused cell is a data cell with which an end-user can interact using the keyboard. For instance, an end-user can press F2 or ENTER to activate the cell's in-place editor.

The focused cell is identified by the focused row and focused column. The focused row is specified by the DataViewBase.FocusedRowHandle property. The focused column is specified by the DataControlBase.CurrentColumn property.

You can use the following methods to move cell focus within the focused row:

Method Description
DataViewBase.MoveNextCell Focuses the next cell after the focused cell.
DataViewBase.MovePrevCell Focuses the previous cell before the focused cell.

Example: How to Focus a Cell with the Specified Value

This example shows how to identify a data cell with the specified value and focus it. To do this, click the 'Find Next' button. The search is performed starting from the currently focused row.

Expanded Focusing Rows


Rows can be focused if the DataViewBase.NavigationStyle property isn't set to GridViewNavigationStyle.None. To specify the focused row, use the DataViewBase.FocusedRowHandle property. If the specified row isn't visible onscreen, a View is automatically scrolled to make the focused row visible.

If the row focusing is enabled, the GridControl focuses the first row when loaded by default. To load the GridControl without focused rows, set the DataControlBase.AllowInitiallyFocusedRow property to false.

Moving Row Focus

The focused row is specified by its handle using the DataViewBase.FocusedRowHandle property. The GridControl provides multiple members that you can use to move row focus:

Member Description
DataControlBase.CurrentItem Gets or sets the currently focused Data Row.
DataViewBase.MoveFirstRow Moves focus to the first visible row or card within a View.
DataViewBase.MovePrevPage Moves focus backward by the number of rows or cards displayed onscreen within a View.
DataViewBase.MovePrevRow Moves focus to the row or card preceding the one currently focused.
DataViewBase.MoveNextRow Moves focus to the row or card following the one currently focused.
DataViewBase.MoveNextPage Moves focus forward by the number of rows or cards displayed onscreen within a View.
DataViewBase.MoveLastRow Moves focus to the last visible row or card within a View.
DataViewBase.MoveFocusedRow Moves focus to the specified row.
GridViewBase.MoveParentGroupRow Moves focus to the group row that owns the currently focused row.

All these methods move focus between visible rows. These methods don't expand collapsed groups.

After the focused row has been changed, the DataControlBase.CurrentItemChanged event is raised.

The number of visible rows is returned by the DataControlBase.VisibleRowCount property. Note that rows contained within collapsed group rows are not taken into account.

Set the DataViewBase.FadeSelectionOnLostFocus property to false to keep the focused row highlighted when the GridControl loses focus.

Expanded See Also

Is this topic helpful?​​​​​​​