francejulia
Messages postés21Date d'inscriptionlundi 7 juillet 2008StatutMembreDernière intervention17 juin 2009
-
26 sept. 2008 à 12:35
skkd
Messages postés1Date d'inscriptionmardi 27 avril 2010StatutMembreDernière intervention23 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
francejulia
Messages postés21Date d'inscriptionlundi 7 juillet 2008StatutMembreDernière intervention17 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(
francejulia
Messages postés21Date d'inscriptionlundi 7 juillet 2008StatutMembreDernière intervention17 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
mighnion
Messages postés38Date d'inscriptionjeudi 22 janvier 2004StatutMembreDernière intervention16 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.
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 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))