Lecteur Mp3

karimprimo Messages postés 1 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 1 juin 2005 - 1 juin 2005 à 19:33
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 2 juin 2005 à 08:29
Bonjour a tous je suis un gros débutant en c# et je me trouve devant ce problème:

j'aimerai savoir comment est ce qu'on s'y prend pour passer des variables entre deux fenetres non modals en c#.



Pourquoi j'essaye de faire, ça c'est tous simplement parcque je suis en
train de dévelloper un lecteur Mp3 avec une Playlist.



On se crée sa liste de chanson dans la playlist puis on les jouent dans le lecteur Mp3.

La Playlist et le lecteur Mp3 sont deux Forms distinctes, ce sont des fenêtres non modales.



J'ai essaye d'appliquer le même principe que pour les boites de
dialogues qui sont des fenêtres modal mais ca ne foonctionne pas.



Exemple :

Dans le Form du Mp3

Playlist listeChanson = new Playlist();

listeChanson.show();

if(listeChanson.showdialog==Dialogresult.Ok)

{

string chanson = Playlist.getchanson();

}



Dans le Form de la Playlist



public string getchanson()

{

if(txtChanson!="")

{

DialogResult==DialogResul.Ok;

return txtChanson;

}

else

{

DialogResult==DialogResult.Cancel;

}

}

Bon He bien j'espère que quelqu'un pourra m'aider

Merci beaucoup

3 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
1 juin 2005 à 20:02
Utilise le couple Délégué / évenement pour faire ca.



Exemple, dans la form de la playlist :



public delegate void OkClickEvent(string file);

public event OkClickEvent OkClicked;



// Dans ta fonction qui valide le choix de la chanson (le click de ton bouton par exemple), tu mets :

OkClicked(chemin_du_fichier);



Et dans ta form1 tu t'inscris a l'evenement OkClicked de ta playslit:



Playlist listeChanson = new Playlist();

listeChanson.OkClicked += new PlayList.OkClickEvent(playlist_OkClicked);

listeChanson.Show();



puis ...

void playlist_OkClicked(string file)

{

// Et la tu peux recupérer la valeur de file

}


Y'a peut-etre des erreurs dans ce que je viens de te mettre, ou alors ce sera a adapter mais ca devrait marcher.


Mx
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
1 juin 2005 à 22:49
Si ta forme 2 contient une reference de la forme 1 elle peut appeler n'importe quelle fonction de cette derniere et passer les arguments necessaires.. ca marche aussi pour les evenements, static ou non..

// Ctor

public PlayList( MainForm owner ) : base( )
{
this.Click += new EventHandler( owner.PlayListClick );
}
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
2 juin 2005 à 08:29
Salut,
Pour la solution donnée par MorpionMx, j'avais posté une source il y a maintenant plusieurs mois qui explique le passage de paramètres (avec event sauf erreur). Tu trouveras cette source à cette adresse : http://www.csharpfr.com/code.aspx?ID=26735

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
0
Rejoignez-nous