Passer ligne suivante listBox

Signaler
Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2013
-
Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2013
-
Bonjour à tous,

voilà j'ai un petit souci. J'ai une listbox avec des fichiers MP3 qui sont en lecture. Et j'ai crée des boutons pour passer à la musique suivante ou précédente. le seul problème, c'est que je n'arrive pas à gérer le passage d'une musique à une autre, que ca soit dans un sens ou dans un autre. Je vous montre le code pour savoir où j'ai fait une erreur et savoir si quelqu'un pourrait m'apporter son aide pour que ca fonctionne ^^

private void btnSuivant_Click(object sender, EventArgs e)
{
    try
   {
        lstTracks.SelectedItem = lstTracks.Items[lstTracks.SelectedIndex + 1];
   }
   catch(Exception ex)
   {
        MessageBox.Show(this, ex.ToString());
   }
}

Voilà si une âme charitable pouvait m'apporter son aide, et m'éclaircir sur la chose... je suis preneur!! ^^

Merci d'avance pour votre aide!!

8 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
56
Salut,
Pourquoi pas quelque chose comme ceci:

if (
this.listBox.SelectedItem !=
null &&
this.listBox.SelectedIndex <
this.listBox.Items.Count - 1)
{
  
this.listBox.SelectedIndex += 1;

}

<hr />
-Blog-
Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2013

Bonsoir,

je viens de tester, et ca me fait exactement la même chose qu'avec le code que je vous ai fournis. C'ets à dire, que lorsque j'ai un musique sélectionnée dans la listBox, et que je fais "suivant", il garde la ligne sélectionnée, et sélectionne la suivante, mais lit toujours la 1ère chanson... snif snif snif
Mais merci quand même pour ta proposition!!! ^^
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
56
Ben oui c'est normal, le fait de changer un index dans une liste ne va pas changer le Mp3 que tu es entrain d'écouter  
Dans l'event SelectedItemChanged, il faut que tu fasses les manips' nécessaire: récupérer le nouvel élément sélectionné et démarrer ton nouveau Mp3 (et couper le précédant s'il est tjrs entrain d'être lu...)








<hr />
-Blog-
Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2013

Et pourtant.... grâce aux mystères de la programmation, cette fonction là par contre marche très bien pour ce que je veux faire :

private void btnPrecedent_Click(object sender, EventArgs e)
{
    try
   {
        lstTracks.SelectedItem = lstTracks.Items[lstTracks.SelectedIndex - 1];
   }
   catch
   {
   }
}

Donc, je ne comprends pas pourquoi ca marcherais pour le précédent et pas le suivant...
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
56
Il n'y a aucun mystère dans le programmation!
Donnes un peu plus de code stp, en particulier l'event handler SelectedItemChanged (ou qqch dans ce sytle)

<hr />
-Blog-
Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2013

Heuuu, j'ai un SelectedIndexChanged... Peut être que ca pourrait apporter plus d'aide...

private void lstTracks_SelectedIndexChanged(object sender, EventArgs e)
{
         string lstBox = lstTracks.Items[lstTracks.SelectedIndex].ToString();
         audio.Stop();
         audio = new Audio(lstBox);
         audio.Play();
         timer1.Start();
         StatusBar.Text = "Play";
         btnPlay.Visible = false;
         btnStop.Visible = true;
         timer1.Start();
         timer1.Interval = 100;
}
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
56
Audio c'est quoi comme object? La class audio de VB.NET ou du DirectX ?

<hr />
-Blog-
Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2013

C'est un objet de la classe DirectX (désolé de pas avoir précisé). Mais en fait, c'est bon, j'ai réussi à faire ce que je souhaitais avec l'aide d'un collègue de boulot. En tout cas, encore merci pour ton aide!!!