private void datos_KeyDown(object sender, KeyEventArgs e) { if (datos.Rows.Count == 0) { return; } try { int rowactual = datos.Rows.Count; if (e.KeyCode == Keys.Insert) { if (datos.Rows.Count != 0) { DialogResult dialogo = globales.MessageBoxQuestion("¿Deseas insertar un nuevo movimiento?", "Aviso", globales.menuPrincipal); if (dialogo == DialogResult.Yes) { this.esInsertar = true; int rowActual = this.row + 1; object[] obj = new object[] { "", "", "", "" }; datos.Rows.Insert(rowActual, obj); datos.Rows[rowActual].DefaultCellStyle.BackColor = Color.FromArgb(200, 230, 201); movimientos m = new movimientos(); dbaseORM orm = new dbaseORM(); m = orm.insert <movimientos>(m, true); datos.Rows[rowActual].Cells[3].Value = m.id; datos.CurrentCell = datos.Rows[rowActual].Cells[0]; this.esInsertar = false; } } } if (e.KeyCode == Keys.Delete && !globales.boolConsulta) { DialogResult p = globales.MessageBoxQuestion("¿Desea eliminar el movimiento?", "Aviso", globales.menuPrincipal); if (p == DialogResult.No) { return; } int id = Convert.ToInt32(datos.Rows[this.row].Cells[3].Value); string tipoMovimiento = Convert.ToString(datos.Rows[this.row].Cells[0].Value); movimientos m = new movimientos(); m.id = id; m.tipo_mov = tipoMovimiento; dbaseORM orm = new dbaseORM(); bool eliminado = orm.delete <movimientos>(m); datos.Rows.RemoveAt(this.row); if (eliminado) { globales.MessageBoxSuccess("Movimiento eliminado correctamente", "Aviso", globales.menuPrincipal); } } } catch { } this.esInsertar = false; }