Lire une valeur dans un listbox

Signaler
Messages postés
21
Date d'inscription
lundi 7 juillet 2008
Statut
Membre
Dernière intervention
17 juin 2009
-
Messages postés
1
Date d'inscription
mardi 27 avril 2010
Statut
Membre
Dernière intervention
23 mars 2011
-
Salut tout le monde
j'ai un probleme avec les listbox
voici mon probleme
j'ai recupérer les valeur d'une base de données et  je l'ai chargé dans un listbox
mais actuellemnt, je voudrait qu'apres une selection d'une valeur du listbox, que je récupère cette valeur dans un textbox
voici ce que j'ai utiliser et le code ne marche pas

je récupere l'index de l'item selectionné

Private
Sub List_Click(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles List.Clickn = 0

n = List.SelectedIndex

End
Sub ensuite je veux afficher la valeurpar:
Private

Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click

Dim i
As
Stringi = System.Convert.ToString(List.SelectedValue)

List2.Items.Add(i)

End
Submais la valeur de i renvoyé est i="system.data.datarowview"
et meme lorsque j'utlise Te.Text = List.SelectedItem.ToString() c'est la meme chose
je ne sais comment faire svp aidez moi
merci infiniment

julie

8 réponses

Messages postés
38
Date d'inscription
jeudi 22 janvier 2004
Statut
Membre
Dernière intervention
16 juin 2010

Bonjour,

Il te suffit de faire:

Te.Text = List.Text

Cela mettra dans ta textbox la valeur affichée et selectionnée de la listbox

l'étérnité c'est long, surtout sur la fin!!
Messages postés
21
Date d'inscription
lundi 7 juillet 2008
Statut
Membre
Dernière intervention
17 juin 2009

merci beaucoup Mighnion
vous m'avez fais un grand bien
ça marche
j'ai un autre souci je voudrai transferer la valeur dans un autre listbox et faire le controle tel que si une valeur est déjà dans le 2 eme listbox, qu'elle ne s'ajoute plus dans celle ci
j'ai commencé par compter le nombre d'item de list2 mais il ne me donne pas la valeur exacte voici le code
Dim

i
As
String

Dim j, n
As
Integeri = List.Text

n = List2.SelectedItems.Count   'me renvoie n=0 

For j = 0
To n

If i = List2.Items(j)
Then ???????? ne me donne rien de bonMsgBox(

"la valeur exite dejà")

Exit
Sub

End
If

Next jList2.Items.Add(i)

merci de me répondre
julie
Messages postés
38
Date d'inscription
jeudi 22 janvier 2004
Statut
Membre
Dernière intervention
16 juin 2010

essai comme ça:

        Dim i As String

        i = List.Text

        For Each j As String In List2.Items

            If i = j Then

                MsgBox("la valeur exite dejà")

                Exit Sub

            End If

        Next j

        List2.Items.Add(i)
Messages postés
21
Date d'inscription
lundi 7 juillet 2008
Statut
Membre
Dernière intervention
17 juin 2009

merci bcp


ça marche parfaitement et je m'en rejouis fortement


il ya cependedant que je voudrais aussi que losque une valeurs par de la première listbox au dexième, que cette dernière soit enlever du listbox d'origine
mais un message d'erreur s'affiche
en effet les données que remplie dans le 1 er listbox viennent d'1e bd et j'e passe par un dataset et ensuite je fais


List.DataSource = datset.Tables("TICKET")

losque je fais donc par apres

List.Items.RemoveAt(n)   '  n est l'index du item selectionné 
un message d'erreur s'affiche disant que le datasouce est à la proriéte "set"

merci d'avance Mighnion



julie
Messages postés
38
Date d'inscription
jeudi 22 janvier 2004
Statut
Membre
Dernière intervention
16 juin 2010

Je ne pourrais répondre de suite a ça car plus dispo. Mais il faut que tu fasses un remove/delete au niveau de ton dateset et non au niveau de la listbox. Peut etre qu'un autre pourra te répondre.

bon week end.

l'étérnité c'est long, surtout sur la fin!!
Messages postés
21
Date d'inscription
lundi 7 juillet 2008
Statut
Membre
Dernière intervention
17 juin 2009

merci Mighnion


je vais egalement d'avantage chercher
je te ferai signe par apres


et bon weekend aussi à toi



julie
Messages postés
840
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
8
Salutations

Private Sub List_Click(...) Handles List.Click
    n = 0
    n = List.SelectedIndex
EndSub
Ceci est inutile, tu peux utiliser List.SelectedIndex quand tu veux, inutile de passe par une autre variable (n). De plus, pour détecter lorsque un élément est sélectionné dans une ListBox, on utilise l'événement SelectedIndexChanged et non Click.

Par exemple, pour afficher la valeur sélectionné dans un TextBox (ta 1ère question) :
Private Sub ListBox1_SelectedIndexChanged(...) Handles ListBox1.SelectedIndexChanged
    If ListBox1.SelectedIndex <> -1 Then
        TextBox1.Text = ListBox1.SelectedItem
    End If
End Sub

"j'ai commencé par compter le nombre d'item de list2"
Nombre d'éléments dans une ListBox => ListBox1.Items.Count

Voici le code que je te propose (il ne faut rien d'autre):

Sub Button1_Click(...) Handles Button1.Click
    ' Vérifier qu'un élément est sélectionné dans ListBox1
    If ListBox1.SelectedIndex <> -1 Then
        ' Vérifier que l'élément n'existe pas déjà dans ListBox2
        If Not ListBox2.Items.Contains(ListBox1.SelectedItem) Then
            ' Ajouter l'élément à ListBox2
            ListBox2.Items.Add(ListBox1.SelectedItem)
        Else
            ' Afficher que l'élément existe déjà dans ListBox2
            MsgBox("Cette valeur existe déjà")
        End If
    End If
End Sub
(Je crois que ce code ne fonctionne pas avec l'utilisation de DataSource, mais ce problème doit encore être résolu, et ce code fonctionnera après cela. Voir ci-dessous)

Il y a juste encore ce problème de Remove. Si tu définie une source de données par la propriété DataSource de la ListBox, tu ne peux plus ajouter/supprimer d'items à ta liste, car la liste en elle-même n'en contient aucun; Avec l'utilisation de DataSource, la ListBox ne fait qu'afficher les données de ta base de donnée, pour ajouter un item à ta ListBox il faut donc l'ajouter à ta base de donnée (même chose pour la suppression).

Ce qui faut donc faire, c'est ajouter tes items à la ListBox au lieu de faire un DataSource...
Au lieu de List.DataSource = datset.Tables("TICKET")
Tu fais:
For Each row As System.Data.DataRow In datset.Tables("TICKET").Rows
    ListBox1.Items.Add(row("MaColonne"))
Next
MaColonne doit donc être remplacé par le nom de la colonne que tu veux afficher dans le ListBox. Ce nom, normalement tu l'utilise déjà pour définirListBox1.DisplayMember = "MaColonne" (DisplayMember et DataSource vont de pair (ValueMember aussi))
Messages postés
1
Date d'inscription
mardi 27 avril 2010
Statut
Membre
Dernière intervention
23 mars 2011

Merci Kévin pour le détail de ta réponse :)