.Net DataGridView “Indice 0 n'a pas de valeur.”
Je vais avoir des ennuis avec un DataGridView.
J'ai une collection de 3 Éléments lié à la grille, lorsque vous essayez de supprimer un de ces éléments et de rechargement de la grille.
Si le code de
If (dlg.ShowDialog() = DialogResult.OK) Then
'Show dialog with grid on it
End If
Sur l'ouverture de la boîte de dialogue, j'ai supprimer un élément de la grille (qui devrait à son tour, de supprimer l'élément de la collection, et re-charger la grille), et il revient à l' "Si (dlg.show..." de ligne, avec l'erreur de
"Une exception de première chance de type 'System.IndexOutOfRangeException' s'est produite dans System.Windows.Forms.dll
Informations supplémentaires: Indice 2 n'ont pas de valeur. "
(J'ai casser en débogueur jeu sur for common language runtime erreurs)
Je peux comprendre cette erreur si j'essaie d'accéder à toutes les cellules, de lignes ou de colonnes, mais im pas, et alors je m'attends à l'exception d'arrêt sur la ligne de code qui est en train d'essayer d'accéder à cette grille de données, pas de la "Si (dlg.ShowDialog()... " ligne
Des idées?
Cheers
OriginalL'auteur Ben | 2009-10-27
Vous devez vous connecter pour publier un commentaire.
J'ai découvert que si vous ajoutez dans
avant la réinitialisation de la grille de collecte (avec l'élément supprimé supprimé)
Il fonctionne comme un charme.
Toujours intéressé de savoir pourquoi vous avez à faire cela.
OriginalL'auteur Ben
Il est possible que, depuis que vous affichez une boîte de dialogue modale, l'erreur est levée indiqués. Avez-vous essayé de mettre un point de rupture dans la ligne de code qui ne fait de la suppression de la grille/collection pour voir si l'erreur vient de qui?
OriginalL'auteur bugfixr
Cela semble une .Net bug, j'ai créé un programme de test, il ne parvient toujours pas, mais j'en ai trouvé une solution de contournement en ajoutant Null vérifier et d'un compteur des éléments avant de liaison de source de données:
OriginalL'auteur Umar Abbas