Bonjour,
J'ai un bug assez étrange. En fait je veux changer le type d'une cellule lorsque j'arrive dessus (avoir une DataGridViewComboBoxCell au lieu d'une DataGridViewTextBoxCell) et seulement dans certaines conditions :
- Cela n'arrive que sur la 7e colonne
- Si la cellule de la deuxième colonne n'est pas vide
- Si une seule cellule est sélectionnée
Tout ca ecrit en C# donne le code suivant :
Et... ça marche plutôt bien... sauf pour la 7e ligne! Exactement la 7e ligne... pour toutes les autres ça marche!! Pour la cellule [6, 6], j'ai une exception au moment ou je remplace la cellule existante dans la GridView par ma cellule nouvellement crée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 private void mainGdv_CellEnter(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == 6) { if (mainGdv.SelectedCells.Count == 1) { if (Convert.ToString((mainGdv[1, e.RowIndex].Value)) != "") { string oldValue = Convert.ToString((mainGdv[6, e.RowIndex].Value)); DataGridViewComboBoxCell cell = new DataGridViewComboBoxCell(); cell.DataSource = ListClient; if (ListClient.Find(x => x == oldValue) == null) { mainGdv[6, e.RowIndex].Value = ""; } cell.AutoComplete = true; mainGdv[6, e.RowIndex] = cell; mainGdv.BeginEdit(true); } } } }
... J'ai essaye avec d'autres données, j'ai même simplement supprimer la ligne et refait un test sur la suivante, le problème se produit systématiquement sur la cellule 6, 6.InvalidOperationException was unhandled.
Operation is not valid because it results in a reentrant call to the SetCurrentCellAddressCore function.
Une idée?
Partager