Skip to main content

GridView.RowCellClick Event

Fires when a user clicks a data cell. If data is editable and the ColumnViewOptionsBehavior.EditorShowMode property equals MouseDown (or Default, if multiple row selection is disabled), the event is suppressed.

Namespace: DevExpress.XtraGrid.Views.Grid

Assembly: DevExpress.XtraGrid.v24.1.dll

NuGet Packages: DevExpress.Win.Grid, DevExpress.Win.Navigation

Declaration

[DXCategory("Action")]
public event RowCellClickEventHandler RowCellClick

Event Data

The RowCellClick event's data class is RowCellClickEventArgs. The following properties provide information specific to this event:

Property Description
Button Gets which mouse button was pressed. Inherited from MouseEventArgs.
CellValue Gets the edit value of the clicked cell.
Clicks Gets the number of times the mouse button was pressed and released. Inherited from MouseEventArgs.
Column Gets the column that contains the clicked cell.
Delta Gets a signed count of the number of detents the mouse wheel has rotated, multiplied by the WHEEL_DELTA constant. A detent is one notch of the mouse wheel. Inherited from MouseEventArgs.
Handled Gets or sets whether this event should be forwarded to the control’s parent container. Inherited from HandledMouseEventArgs.
HitInfo Gets an object that identifies the clicked element. Inherited from RowClickEventArgs.
IsHMouseWheel This member supports the internal infrastructure, and is not intended to be used directly from your code. Inherited from DXMouseEventArgs.
IsMouseEvent Gets whether these event arguments provide data for the MouseUp, MouseDown, and MouseMove events. Inherited from DXMouseEventArgs.
Location Gets the location of the mouse during the generating mouse event. Inherited from MouseEventArgs.
RowHandle Gets the handle of the clicked row. Inherited from RowClickEventArgs.
X Gets the x-coordinate of the mouse during the generating mouse event. Inherited from MouseEventArgs.
Y Gets the y-coordinate of the mouse during the generating mouse event. Inherited from MouseEventArgs.

The event data class exposes the following methods:

Method Description
GetMouseArgs(Control, EventArgs) Converts the MouseEventArgs object passed as a parameter to a DXMouseEventArgs object. Inherited from DXMouseEventArgs.
GetMouseArgs(MouseEventArgs) Converts the MouseEventArgs object passed as a parameter to a DXMouseEventArgs object. Inherited from DXMouseEventArgs.
Sync() For internal use. Inherited from DXMouseEventArgs.

Remarks

The RowCellClick event does not fire when a user clicks on a row cell if Grid data is editable and one of the following conditions is true:

Note

The HitInfo parameter of the RowCellClick event is not initialized. Use the BaseView.CalcHitInfo method to get a HitInfo object.

Example

In this example, the Data Grid is in non-editable mode (does not invoke cell editors when users click them). Cells under the “State” column cycle through all “ObjectState” enumerator values when a user clicks these cells.

animation

using System.Collections.Generic;
using System.Windows.Forms;
using DevExpress.XtraGrid;
using DevExpress.XtraGrid.Views.Grid;

namespace DXApplication3
{
    public partial class Form1 : DevExpress.XtraEditors.XtraForm {
        public Form1() {
            InitializeComponent();
            // Add Data Grid
            GridControl gridControl = new GridControl { Parent = this, Dock = DockStyle.Fill };
            GridView gridView = new GridView();
            gridView.OptionsBehavior.Editable = false;
            gridControl.MainView = gridView;
            // Bind to sample data
            List<SomeObject> dataSource = new List<SomeObject>();
            for (int i = 0; i < 4; i++)
                dataSource.Add(new SomeObject { Name = string.Format("Object{0}", i), State = (ObjectState)i });
            gridControl.DataSource = dataSource;

            gridView.RowCellClick += gridView_RowCellClick;
        }

        // When a user clicks any "State" column cell, the cell should change its value
        void gridView_RowCellClick(object sender, RowCellClickEventArgs e) {
            if (e.Column.FieldName == "State") {
                ObjectState state = (ObjectState)e.CellValue;
                ObjectState newState;
                switch (state) {
                    case ObjectState.Normal:
                        newState = ObjectState.Selected;
                        break;
                    case ObjectState.Selected:
                        newState = ObjectState.Highlighted;
                        break;
                    case ObjectState.Highlighted:
                        newState = ObjectState.Hovered;
                        break;
                    default:
                        newState = ObjectState.Normal;
                        break;
                }
                GridView view = sender as GridView;
                view.SetRowCellValue(e.RowHandle, e.Column, newState);
            }
        }

        // Sample data entity
        public class SomeObject {
            public string Name { get; set; }
            public ObjectState State { get; set; }
        }

        // Available values for the "State" column cells
        public enum ObjectState {
            Normal,
            Selected,
            Highlighted,
            Hovered
        }
    }
}
See Also