Lire une valeur dans un listbox

francejulia Messages postés 21 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 17 juin 2009 - 26 sept. 2008 à 12:35
skkd Messages postés 1 Date d'inscription mardi 27 avril 2010 Statut Membre Dernière intervention 23 mars 2011 - 22 févr. 2011 à 15:11
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

mighnion Messages postés 38 Date d'inscription jeudi 22 janvier 2004 Statut Membre Dernière intervention 16 juin 2010
26 sept. 2008 à 14:16
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!!
0
francejulia Messages postés 21 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 17 juin 2009
26 sept. 2008 à 15:27
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
0
mighnion Messages postés 38 Date d'inscription jeudi 22 janvier 2004 Statut Membre Dernière intervention 16 juin 2010
26 sept. 2008 à 15:46
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)
0
francejulia Messages postés 21 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 17 juin 2009
26 sept. 2008 à 16:45
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
0

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

Posez votre question
mighnion Messages postés 38 Date d'inscription jeudi 22 janvier 2004 Statut Membre Dernière intervention 16 juin 2010
26 sept. 2008 à 16:50
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!!
0
francejulia Messages postés 21 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 17 juin 2009
26 sept. 2008 à 17:00
merci Mighnion


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


et bon weekend aussi à toi



julie
0
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
26 sept. 2008 à 18:00
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))
0
skkd Messages postés 1 Date d'inscription mardi 27 avril 2010 Statut Membre Dernière intervention 23 mars 2011
22 févr. 2011 à 15:11
Merci Kévin pour le détail de ta réponse :)
0
Rejoignez-nous