Je suis à peine nouveau avec le contrôle DataGridView de WinForm et honnêtement, j'ai du mal à essayer de mélanger et d'assortir ses événements et méthodes (par exemple CommitEdit()
méthode n'a pas fait ce que je m'attendais) pour mettre en œuvre le concept simple « entrer dans le mode d'édition en double-cliquant sur la cellule, modifier sa valeur (faire, espérons une sorte de validation) et d'enregistrer les modifications au moment de quitter la cellule précitée Mon code actuel ressemble à ceci et il est certainement incomplète.Comment puis-je "double-cliquer, éditer et sauvegarder tout en laissant" un Windows Forms DataGridView CurrentCell?
// DEBUG
private void myDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
this.myDataGridView.BeginEdit(true);
this.myDataGridView.CurrentCell.ReadOnly = false;
}
private void myDataGridView_CellLeave(object sender, DataGridViewCellEventArgs e)
{
this.myDataGridView.EndEdit();
}
private void myDataGridView_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
DataGridViewCellStyle editCellStyle = new DataGridViewCellStyle();
editCellStyle.BackColor = System.Drawing.Color.DarkOrange;
editCellStyle.ForeColor = System.Drawing.Color.Black;
this.myDataGridView.CurrentCell.Style.ApplyStyle(editCellStyle);
}
private void myDataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
DataGridViewCellStyle defaultCellStyle = new DataGridViewCellStyle();
defaultCellStyle.BackColor = System.Drawing.Color.White;
this.myDataGridView.CurrentCell.Style.ApplyStyle(defaultCellStyle);
}
// DEBUG
Alors Comme vous pouvez remarquer toute aide que vous pourriez fournir sera vraiment utile et définitivement apprécié.Merci beaucoup vous les gars à l'avance!
Quel est exactement le problème? Par exemple, la source de données n'est-elle pas mise à jour? Base de données? CellStyles ne se met pas à jour? –
Merci pour votre réponse Conrad Frix. En fait, rien n'est mis à jour, malgré
myDataGridView.CurrentCell.EditedFormattedValue
détient la nouvelle valeur, en quittant la cellule, il est perdu. –