2009-07-13 3 views
0

Dans le gestionnaire d'événements pour CellValueChanged, pour une certaine condition, je souhaite que le focus reste dans la cellule et efface son contenu. Ce qui se passe est focus (curseur) est dans la cellule suivante lorsque le gestionnaire termine son travail. Il doit être dans la même cellule qui a causé l'événement.Impossible de laisser le focus sur la même cellule dans DataGridView dans le gestionnaire CellValueChanged (.NET)

MyGrid.CellValueChanged -= new DataGridViewCellEventHandler(CellValueChanged); 
if (condition) 
{ 
MyGrid.Rows[e.RowIndex].Cells["ColumnName"].Value = ""; 
MyGrid.CurrentCell = MyGrid["ColumnName", e.RowIndex]; 
MyGrid.BeginEdit(true); 
return; 
} 

....

Répondre

0

Je pense que vous cherchez événement CellValidating à la place valeur d'événement changé. Mettez ce code conditionnel dans cet événement et si cette condition échoue, faites e.Cancel = true, ce qui conservera le focus dans la même cellule.

Questions connexes