Petite problème avec le combobox

Résolu
Signaler
Messages postés
65
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
28 mars 2013
-
Messages postés
65
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
28 mars 2013
-
bonjour
j'ai un petit problème
j ai les deux classe stagiaire et filière
la classe stagiaire a les attributs suivant :code,nom,prenom
la classe filière a comme attribut:liste_stagiaire et nom_filière
j'arrive a ajouter des stagiaires dans une arraylist après je l'ai stoke dans un combobox mais j 'arrive pas a chercher un stagiaire par son nom a l'aide du combobox ou plutot sa affiche pas les informations d'un stagiaire dans les textbox voila mon code:
Public Class Form1
    Dim s As New stagiaire
    Dim f As New filière

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub ajouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        s._code = txtcode.Text
        s._prenom = txtprenom.Text
        s._nom = txtnom.Text
        s._note1 = txtnote1.Text
        s._note2 = txtnote2.Text
        s._note3 = txtnote3.Text
        f._liste_stagiaire.Add(s)
        MsgBox("ajouter avec succès ")
        ComboBox2.Items.Add(s._nom)
    End Sub
   Private Sub ComboBox2_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedValueChanged
        Dim i As Integer
        For i = 0 To f._liste_stagiaire.Count - 1
            If f._liste_stagiaire.Item(i)._nom() = ComboBox2.SelectedItem() Then
                txtcode.Text = f._liste_stagiaire.Item(i)._code
                txtprenom.Text = f._liste_stagiaire.Item(i)._prenom
                txtnom.Text = f._liste_stagiaire.Item(i)._nom
              
            End If
              next
    End Sub

j'espere que quelqu'un pourra m'aider s'il vous plait
merci d'avance

10 réponses

Messages postés
2813
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
38
Tiens allé je suis de bonne humeur, puis il fait beau :)

Voila le code complet :

    Public Class Form1
    '
    Private f As New Filière
    '
    Private Sub ajouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ajouter.Click
        '
        Dim S As New stagiaire
        '
        With S
            ._code = txtcode.Text
            ._prenom = txtprenom.Text
            ._nom = txtnom.Text
        End With
        '
        f._liste_stagiaire.Add(S)
        MsgBox("ajouter avec succès ")
        ComboBox2.Items.Add(S._nom)
        '
    End Sub
    '
    Private Sub ComboBox2_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedValueChanged
        If ComboBox2.SelectedIndex <> -1 Then
            txtcode.Text = f._liste_stagiaire.Item(ComboBox2.SelectedIndex)._code
            txtprenom.Text = f._liste_stagiaire.Item(ComboBox2.SelectedIndex)._prenom
            txtnom.Text = f._liste_stagiaire.Item(ComboBox2.SelectedIndex)._nom
        End If
    End Sub
    '
End Class

Public Class Filière
    Public _liste_stagiaire As New List(Of stagiaire)
End Class

Public Class stagiaire
    Public _code As String
    Public _prenom As String
    Public _nom As String
    Public _note1 As String
    Public _note2 As String
    Public _note3 As String
End Class


Vire tout ce que tu as dans ton formulaire et dans tes classes annexes et remplace-le par ce code, il fonctionne je viens de tester.

Bien entendu, il te reste à ajouter la partie pour les notes.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
2813
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
38
je t'explique
quand je clique sur la valeur que je veux afficher . y'a aucun changement du coté de l'affichage dernier .


J'avais bien compris, je te demandais si VB te générait un message d'erreur.

Apparement non donc c'est que tu n'as pas recopié le code correctement.

Celui du haut est basé sur le meme pricnipe, mais il est complet pour t'éviter les erreurs.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
2813
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
38
Essaye comme ceci :

Private Sub ComboBox2_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedValueChanged
        If ComboBox2.SelectedIndex <> -1 Then
            txtcode.Text = f._liste_stagiaire.Item(Combobox2.SelectedIndex)._code
            txtprenom.Text = f._liste_stagiaire.Item(Combobox2.SelectedIndex)._prenom
            txtnom.Text = f._liste_stagiaire.Item(Combobox2.SelectedIndex)._nom
        End If
End Sub


Plus propre, plus simple...

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
65
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
28 mars 2013

désolè ta solution ne marche pas
une autre solution s'il vous plait
merci d'avance
Messages postés
2813
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
38
Peux-tu préciser en quoi cela ne fonctionne pas ? Qu'as-tu comme message d'erreur ?

As-tu intancié la collection "f._liste_stagiaire" dans le constructeur de "filière" ??

Public Class Filière
    Public _liste_stagiaire As New ListOf(stagiaire)
End Class


Ou pour faire plus convetionnel :

Public Class Filière
    '
    Private _liste_stagiaire As ListOf(stagiaire)
    '
    Public Property liste_Stagiaire As ListOf(stagiaire) 
       Get
          Return _liste_stagiaire
       End Get
       Set 
          _liste_stagiaire = value
       End Set
    End Property 
    '
    Public Sub New
       _liste_stagiaire = New ListOf(Stagiaire) 
    End sub
    ' 
End Class


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
2813
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
38
On la refait :

Public Class Filière
    Public _liste_stagiaire As New List(Of stagiaire)
End Class


Public Class Filière
    '
    Private _liste_stagiaire As List(Of stagiaire)
    '
    Public Property liste_Stagiaire As List(Of stagiaire) 
       Get
          Return _liste_stagiaire
       End Get
       Set 
          _liste_stagiaire = value
       End Set
    End Property 
    '
    Public Sub New
       _liste_stagiaire = New List(Of Stagiaire) 
    End sub
    ' 
End Class


C'est ca de coder sans ide, je me doutais bien qu'il y avait un truc qui clochait ;O)

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
65
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
28 mars 2013

j'ai essai ce que tu ma proposè mais malheureusement sa ne fonctione pas
Messages postés
2813
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
38
T'as quoi comme message d'erreur ?

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
65
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
28 mars 2013

je t'explique
quand je clique sur la valeur que je veux afficher . y'a aucun changement du coté de l'affichage dernier .
Messages postés
65
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
28 mars 2013

merci c'est gentil de ta part
sa marche.