l'index se trouve en dehors des limites du tableau
Bonjour à tous,
J'ai bien cherché sur le forum et je n'ai pas trouvé de solutions.
Voilà, j'ai un projet à faire (sur visual basic express 2010), sur lequel l'utilisateur peut ajouter/supprimer/modifier des lignes et des stations de métro.
Le problème se pose quand je programme le click_ajouterstation ou le click_supprimerstation, ça m'écrit "l'index se trouve en dehors des limites du tableau", et ça renvoie le problème dans les procédures que le prof avait déjà entré pour nous "faciliter" le travail
le prof:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| 'Quand on sélectionne une station de la listBox contenant les noms de stations, on affiche les informations de la station dans les textBox du groupe informations
Private Sub lst_stations_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lst_stations.SelectedIndexChanged
'Remplir les informations de la station sélectionnée
Dim indiceLigneSelectionnee As Integer = lst_lignes.SelectedIndex
Dim indiceStationSelectionnee As Integer = lst_stations.SelectedIndex
Dim stationSelectionnee As Station = reseau(indiceLigneSelectionnee).stations(indiceStationSelectionnee) "l'index se trouve en dehors des limites du tableau"
txt_nomStation.Text = stationSelectionnee.nom
txt_xStation.Text = stationSelectionnee.position.x
txt_yStation.Text = stationSelectionnee.position.x
txt_nbCorrespondancesStation.Text = stationSelectionnee.nbCorrespondances
Dim i As Integer
'Effacer les textbox de correspondance
For i = 0 To 4
gb_correspondancesStation.Controls(i).Text = ""
Next
'Remplir les textbox des correspondances
For i = 0 To stationSelectionnee.nbCorrespondances - 1
gb_correspondancesStation.Controls(i).Text = stationSelectionnee.correspondances(i)
Next
End Sub |
Et voilà mes bouton ajouter/supprimer:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| Private Sub btn_supprimerStation_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_supprimerStation.Click
Dim p2 As Integer 'station à supprimer
p2 = lst_stations.SelectedIndex
Dim j2 As Integer ' j2 correspond au numéro de la ligne
j2 = lst_lignes.SelectedIndex
supprimerstation(reseau(j2), reseau(j2).nbStations, p2)
'Afficher les lignes dans les listBox
afficherLignes(reseau, nbLignes, lst_lignes)
afficherLignes(reseau, nbLignes, lst_ligneDepart)
afficherLignes(reseau, nbLignes, lst_ligneArrivee)
'redessinage du réseau
Me.Refresh()
End Sub |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| Private Sub btn_ajouterStation_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_ajouterStation.Click
Dim s As Station
'lecture des données rentrées par l'utilisateur pour la nouvelle station
s.nom = txt_nomStation.Text
s.nbCorrespondances = Val(txt_nbCorrespondancesStation.Text)
s.position.x = Val(txt_xStation.Text)
s.position.y = Val(txt_yStation.Text)
'Mise en place d'un si pour les correspondances afin de remplir le tableau correctement
If s.nbCorrespondances <> 0 Then
ReDim s.correspondances(10)
If s.nbCorrespondances = 1 Then
s.correspondances(0) = Val(txt_correspondance0.Text)
ElseIf s.nbCorrespondances = 2 Then
s.correspondances(0) = Val(txt_correspondance0.Text)
s.correspondances(1) = Val(txt_correspondance1.Text)
ElseIf s.nbCorrespondances = 3 Then
s.correspondances(0) = Val(txt_correspondance0.Text)
s.correspondances(1) = Val(txt_correspondance1.Text)
s.correspondances(2) = Val(txt_correspondance2.Text)
ElseIf s.nbCorrespondances = 4 Then
s.correspondances(0) = Val(txt_correspondance0.Text)
s.correspondances(1) = Val(txt_correspondance1.Text)
s.correspondances(2) = Val(txt_correspondance2.Text)
s.correspondances(3) = Val(txt_correspondance3.Text)
ElseIf s.nbCorrespondances = 5 Then
s.correspondances(0) = Val(txt_correspondance0.Text)
s.correspondances(1) = Val(txt_correspondance1.Text)
s.correspondances(2) = Val(txt_correspondance2.Text)
s.correspondances(3) = Val(txt_correspondance3.Text)
s.correspondances(4) = Val(txt_correspondance4.Text)
End If
End If
'ajouter station
Dim j2 As Integer ' j2 correspond au numéro de la ligne
j2 = lst_lignes.SelectedIndex
ReDim s.correspondances(10)
Dim msg As String
Dim p2 As Integer ' p2 correspond à la place ou on veut introduire la station
msg = ""
'mise en place de condition en fonction de la place de la station : première station, dernière station, station intermédiaire
insérerstation(reseau(j2), reseau(j2).nbStations, s, p2)
'Afficher les lignes dans les listBox
afficherLignes(reseau, nbLignes, lst_lignes)
afficherLignes(reseau, nbLignes, lst_ligneDepart)
afficherLignes(reseau, nbLignes, lst_ligneArrivee)
'redessinage du réseau
Me.Refresh()
End Sub |
Merci beaucoup, je précise juste que je suis débutante, et que donc, je ne connait/comprend pas tous les termes techniques