System.argumentoutofrangeexception : « l’index était hors plage. Doit être non négatif et inférieur à la taille de la collection. Nom du paramètre : index’

la programmation

[ad_1]

private void ItemGV_CellClick(object sender, DataGridViewCellEventArgs e)
       {
           if (e.RowIndex >= 0)
           {
               txtItemnum.Text = ItemGV.SelectedRows[0].Cells[0].Value.ToString();
               txtItemname.Text = ItemGV.SelectedRows[0].Cells[1].Value.ToString();
               comboCat.SelectedItem = ItemGV.SelectedRows[0].Cells[2].Value.ToString();
               txtitemprice.Text = ItemGV.SelectedRows[0].Cells[3].Value.ToString();
               //txtemail.Text = UserGV.SelectedRows[0].Cells[4].Value.ToString();
           }

Ce que j’ai essayé :

lors d’un événement de clic, j’écris le code pour obtenir les valeurs de grille dans la zone de texte

Solution 1

Nous ne pouvons pas vous dire « C’est là ! » car nous aurions besoin que votre code s’exécute avec vos données pour savoir exactement où cela se produit et quelles valeurs sont à l’origine du problème – et vous en avez besoin avant de pouvoir commencer à regarder pourquoi c’est faux!

Tout ce que nous pouvons faire, c’est expliquer pourquoi cela pose problème. Les tableaux en C# sont une séquence de valeurs accessibles via un index : et cet index doit être compris entre zéro et le « nombre de valeurs moins un ». Ainsi, si vous avez un tableau contenant cinq entiers par exemple, alors les index valides sont 0, 1, 2, 3 et 4. Tous les autres index donneront une erreur car la valeur que vous essayez de gérer n’existe pas.
Vous pouvez donc dire :

C#
i = arr[0];
i = arr[1];
i = arr[2];
i = arr[3];
i = arr[4];

Mais non:

C#
i = arr[-1];
i = arr[5];
i = arr[666];

Et votre code utilise plusieurs tableaux, dont chacun pourrait être à l’origine du problème.

Donc, ça va dépendre de vous.
Heureusement, vous disposez d’un outil qui vous aidera à comprendre ce qui se passe : le débogueur. Si vous ne savez pas comment l’utiliser, un rapide Google pour “Débogueur Visual Studio” devrait vous donner les informations dont vous avez besoin.

Placez un point d’arrêt sur la première ligne de la fonction et exécutez votre code via le débogueur. Ensuite, examinez votre code et vos données et déterminez ce qui doit se produire manuellement. Ensuite, passez chaque ligne en vérifiant que ce à quoi vous vous attendiez est exactement ce qui s’est produit. Lorsque ce n’est pas le cas, c’est à ce moment-là que vous avez un problème et vous pouvez revenir en arrière (ou l’exécuter à nouveau et regarder de plus près) pour découvrir pourquoi.

À première vue, la collection SelectedItems est vide ou il n’y a pas suffisamment de colonnes dans la grille, mais vous avez besoin que votre code s’exécute avec vos données pour le savoir.

Désolé, mais nous ne pouvons pas faire cela à votre place. Il est temps pour vous d’apprendre une nouvelle (et très, très utile) compétence : le débogage !

[ad_2]

コメント

Titre et URL copiés