no puedo salir d la celda ni cambiarme a otra ni realizar otra acción hasta completarla con el formato correcto....como podría solucionarlo...
¿A que te refieres con "solucionar"?, ¿quieres permitir escribir cualquier cosa que no sea una fecha?.
Si el formato de la celda debe ser una fecha, y estás validando una fecha hasta que introduzcas una fecha correcta, entonces, ¿qué hay que solucionar?.
Como ya te han comentado... se más específico.
EDITO:De todas formas lo que estás haciendo se puede simplificar, solamente usando una plantilla de celda:
DataGridViewTextBoxCell dgvCellTmplt;
DataGridViewColumn dgvCol;
private void Form1_Load()
{
this.dgvCellTmplt = new DataGridViewTextBoxCell
(); this.dgvCellTmplt.ValueType = typeof(System.DateTime); this.dgvCellTmplt.Style.Format = "yyyy/MM/dd";
this.dgvCellTmplt.ErrorText = "EL DATO INTRODUCIDO NO ES UNA FECHA";
this.dgvCol = new DataGridViewColumn
(cellTemplate
: dgvCellTmplt
); this.dgvCol.Name = "columnDate";
this.dgvCol.HeaderText = "Date";
this.dgv1.EditMode = DataGridViewEditMode.EditOnKeystroke;
this.dgv1.ShowEditingIcon = true;
this.dgv1.Columns.Add(dgvCol);
}
private void Dgv1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
DataGridView dgv = (DataGridView)sender;
if (dgv.CurrentCell.OwningColumn.Equals(dgvCol)) {
dgv.CurrentCell.ErrorText = string.Empty;
}
}
Saludos