Petite problème avec le combobox

Résolu
dibax10 Messages postés 65 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 28 mars 2013 - 23 mai 2010 à 15:26
dibax10 Messages postés 65 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 28 mars 2013 - 23 mai 2010 à 18:52
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

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
23 mai 2010 à 18:22
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.
3
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
23 mai 2010 à 18:24
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.
3
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
23 mai 2010 à 16:05
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.
0
dibax10 Messages postés 65 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 28 mars 2013
23 mai 2010 à 16:43
désolè ta solution ne marche pas
une autre solution s'il vous plait
merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
23 mai 2010 à 16:55
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.
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
23 mai 2010 à 17:01
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.
0
dibax10 Messages postés 65 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 28 mars 2013
23 mai 2010 à 18:05
j'ai essai ce que tu ma proposè mais malheureusement sa ne fonctione pas
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
23 mai 2010 à 18:08
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.
0
dibax10 Messages postés 65 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 28 mars 2013
23 mai 2010 à 18:22
je t'explique
quand je clique sur la valeur que je veux afficher . y'a aucun changement du coté de l'affichage dernier .
0
dibax10 Messages postés 65 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 28 mars 2013
23 mai 2010 à 18:52
merci c'est gentil de ta part
sa marche.
0
Rejoignez-nous