This documentation is archived and is not being maintained.

DataGridView.IsCurrentCellInEditMode Property

Gets a value indicating whether the currently active cell is being edited.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

public bool IsCurrentCellInEditMode { get; }
/** @property */
public boolean get_IsCurrentCellInEditMode ()

public function get IsCurrentCellInEditMode () : boolean

Not applicable.

Property Value

true if the current cell is being edited; otherwise, false.

A DataGridViewCheckBoxCell that has focus is always in edit mode. If the current cell hosts an editing control and IsCurrentCellInEditMode is true, you can retrieve the editing control through the EditingControl property.

The following code example illustrates the use of this property. This example is part of a larger example available in the VirtualMode reference topic.

#region "data store maintance"
const int initialValue = -1;

private void dataGridView1_CellValueNeeded(object sender,
    DataGridViewCellValueEventArgs e)
{
    if (store.ContainsKey(e.RowIndex))
    {
        // Use the store if the e value has been modified 
        // and stored.            
        e.Value = store[e.RowIndex];
    }
    else if (newRowNeeded && e.RowIndex == numberOfRows)
    {
        if (dataGridView1.IsCurrentCellInEditMode)
        {
            e.Value = initialValue;
        }
        else
        {
            // Show a blank value if the cursor is just resting
            // on the last row.
            e.Value = String.Empty;
        }
    }
    else
    {
        e.Value = e.RowIndex;
    }
}

private void dataGridView1_CellValuePushed(object sender,
    DataGridViewCellValueEventArgs e)
{
    store.Add(e.RowIndex, int.Parse(e.Value.ToString()));
}
#endregion

private Dictionary<int, int> store = new Dictionary<int, int>();

#region "data store maintance"
private final int INITIALVALUE = -1;

private void dataGridView1_CellValueNeeded(Object sender,
    DataGridViewCellValueEventArgs e)
{
    if (store.ContainsKey(e.get_RowIndex())) {
        // Use the store if the e value has been modified 
        // and stored.            
        e.set_Value((Int32)store.get_Item(e.get_RowIndex()));
    }
    else {
        if (newRowNeeded && e.get_RowIndex() == numberOfRows) {
            if (dataGridView1.get_IsCurrentCellInEditMode()) {
                e.set_Value((Int32)INITIALVALUE);
            }
            else {
                // Show a blank e if the cursor is just loitering
                // over(the)
                // last row.
                e.set_Value("");
            }
        }
        else {
            e.set_Value((Int32)e.get_RowIndex());
        }
    }
} //dataGridView1_CellValueNeeded

private void dataGridView1_CellValuePushed(Object sender,
    DataGridViewCellValueEventArgs e)
{
    store.Add(e.get_RowIndex(), Int32.Parse(e.get_Value().ToString()));
} //dataGridView1_CellValuePushed
#endregion

private Dictionary<int, int> store = new Dictionary<int, int>();

Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0
Show: