Double cliquer sur élément listbox [VB.NET] [VB.NET] - VB/VBA/VBS - Programmation
Marsh Posté le 23-02-2014 à 18:00:05
Dans un premier temps, on peut remplacer le "sender as Object" par "sender as Listbox" (ou le type du controle utilisé),
ça permettra à Visual Studio de t'afficher les bonnes infos sur ton objet
Code :
|
Du coup, il faut ajouter une fonction dans ta classe "Consultation":
Code :
|
Marsh Posté le 25-02-2014 à 09:05:00
Merci celà m'a beaucoup aidé.
Cependant la récupération des informations du film ne marche pas dans consultation j'ai essyé autre chose mais j'ai le même résultat. Je posterais le code
Marsh Posté le 11-03-2014 à 16:33:30
Merci celà m'a beaucoup aidé.
Puisque je t'ai sous la main et au lieu de créer un nouveau sujet, j'aimerais une suggestion de ta part sur un problème que j'ai rencontré tout au long de mon programme.
En fait j'aimerais lors d'un clic sur un bouton supprimer un film dans laitbox et dans la collection par la même occasion. Le code que j'ai tapé marche partiellement mais à la fin l'appli plante et j'ai une erreur (InvalidOperationException).
Saurais tu ce qui ne va pas?
Code :
|
Marsh Posté le 14-03-2014 à 15:51:56
Le plus gros problème que je vois (qui bloquera l’exécution à coup sûr), c'est que tu essaies de supprimer un élément de la liste de films alors que tu es en train de la parcourir.
La fonction ForEach ne permet pas de faire ça directement, la liste doit contenir le même nombre d'éléments jusqu'à la fin de la boucle.
Le code tel que tu l'as fait ici parcourra toute la liste et supprimera tous les films qui ont le même nom que la sélection. Dans le cas où tu veux supprimer un film parce qu'il est en double dans la liste, ça peut poser souci.
De plus, une fois que tu as supprimé l'élément souhaité de la Listbox, Liste.SelectedItem repasse à "Nothing", et le programme n'a plus d'objet pour une comparaison.
Dans ce cas précis (je pars du principe que tu as utilisé le code que tu as posté dans un autre topic), la ListBox devrait contenir le même nombre d'éléments que ListDeFilms, dans le même ordre.
Donc, Liste.SelectedIndex correspondra à l'index de l'objet Film dans ListeDeFilms.
Code :
|
Edit: Si tu as trié les films dans la ListBox, mais pas dans ListeDeFilms, cette fonction ne marchera pas.
Dans ce cas mieux vaut parcourir la liste pour trouver le film dont le nom correspond.
Code :
|
Encore une fois, ce code ne posera pas de souci pour supprimer un film, tant que deux films ne portent pas le même nom.
Dans ce cas, je pars du principe que le film en trop est celui qui a été ajouté en dernier, d'où le " For i = (ListeDeFilms.Count-1) To 0 Step -1 " plutôt que For i = 0 To (ListeDeFilms.Count-1) ".
Marsh Posté le 22-02-2014 à 14:29:52
Bonjour,
En bon débutant que je suis, je recherche le code pour pouvoir lors de l'exécution de mon appli double cliquer sur un élément de ma lisbox.
J'aimerais ouvrir une nouvelle fenêtre lors du double click
Pouvez-vous m'aidez?
Merci