I Obtenir une exception d'application
Application.Run(new MainForm());
3 Réponses :
Je suppose que vous avez lié une liste initialement vide (ou une autre sorte de collection qui ne génère pas d'événements modifiés par la liste) à votre Les éléments que vous ajoutez seront Vous ne devez lier que votre liste sur la grille si elle a quelques éléments de commencer à commencer ou à rebondir lorsque vous les ajoutez. P>
Voir aussi ma réponse à Cette question, qui est essentiellement le même problème. P> dataGridView code>, puis ajouté des éléments dans cette liste. . P>
DeviseManager Code> rapportera sa position de ligne actuelle sous forme de décalage de -1. Il restera de cette façon parce que la liste ne signale pas les modifications apportées à la grille. P>
Oui, je suis une liste contraignante. Je vais essayer de vérifier si la liste est vide avant de se lier.
Le problème pourrait être résolu si avant la liaison de données
datagridview code> doit convertir la liste
à
Code> (En convertissant
Liste
DataTable code>) et utilisez-le comme
DataSource code>. Pour moi, c'est mieux que de convertir à
BindingList (de T) code>, car après la diffusion de données
datagridview.datasource = BindingList (de t) code> Il affiche 1 ligne vide dans
DataGridView < / code>, même
BindingList (de T) code> est vide
Lors de la liaison de la liste (assumez DataLST) à la source de données du DataGridView, liez-le avec grid.datasource = datalst.tolist ();
Suivre les conseils d'Andy, je substitué P>
avec p>
Et le problème a disparu. P> Liste privée
Liste de liaison privée
Après beaucoup d'efforts, j'ai résolu ce problème. Lier votre DataGridView lorsque vous avez des données dans la source de données, soit une liste ou une clé de données. p>
Quel est le message d'exception? Votre plus grand indice en ce moment est la référence à
DeviseManager code>. Que fait la grille avec la monnaie? Spécifiquement, y a-t-il quelque chose de mal avec les données de la ligne que vous cliquez sur?
Avec David, quelle est la trace complète de la pile? Il manque les informations importantes
C'est une trace de pile complète. Il n'y a rien d'autre ... je peux olly Ajouter ce message d'erreur est {"Index -1 n'a pas de valeur."} (SystemindexOUTOfarange Exception). Je l'ai ajouté à la question.
Mon pari est sur "IndexOutOfRangeException" car le DeviseManager signale un décalage de la position de la ligne actuelle de -1.
Je ne travaille pas avec la monnaie. DataGridView a seulement 5 colonnes: 1 date, 2 textes et 2 boutons.
@Anton: Je ne veux pas dire que la monnaie signifie de l'argent. La liaison de données utilise un devise de change pour garder une trace de la ligne actuelle i>, etc.
Dans notre cas, le problème était que l'un de nos programmeurs handicapés les événements dans certaines circonstances avec: Ceci.ReiselistChangeDevents = Faux;