public override void InitializeEditingControl(int rowIndex, object initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle) { // Set the value of the editing control to the current cell value. base.InitializeEditingControl(rowIndex, initialFormattedValue, dataGridViewCellStyle); LogCellEditingControl ctl = DataGridView.EditingControl as LogCellEditingControl; }
private void Control_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Up || e.KeyCode == Keys.Down) { if (EditingControl != null) { LogCellEditingControl editControl = EditingControl as LogCellEditingControl; if (editControl != null) { editControl.EditingControlDataGridView.EndEdit(); int line = editControl.EditingControlDataGridView.CurrentCellAddress.Y; if (e.KeyCode == Keys.Up) { if (line > 0) { line--; } } if (e.KeyCode == Keys.Down) { if (line < editControl.EditingControlDataGridView.RowCount - 1) { line++; } } int col = editControl.EditingControlDataGridView.CurrentCellAddress.X; int scrollIndex = editControl.EditingControlDataGridView.HorizontalScrollingOffset; int selStart = editControl.SelectionStart; editControl.EditingControlDataGridView.CurrentCell = editControl.EditingControlDataGridView.Rows[line].Cells[col]; editControl.EditingControlDataGridView.BeginEdit(false); editControl.SelectionStart = selStart; editControl.ScrollToCaret(); editControl.EditingControlDataGridView.HorizontalScrollingOffset = scrollIndex; e.Handled = true; } else { _logger.Warn("Edit control was null, to be checked"); } } } }