Huhu,
wiedermal stehe ich seit ein par Tagen vor einem Problem und ich komm
nicht wirklich dahinter.
Ich schreibe es ausfuehrlich, da es vielleicht bessere Moeglichkeiten
geben koennte, die mir gerade nicht einfallen.
Ich habe 2 Methoden:
Nr 1) -- ist ein load event des UserControls in dem ich Daten aus einem
Ordner einlese und sie ueber eine foreachschleife in einer listBox
aufliste.Ausserdem noch eine List<string> Liste, welche diese
Namen aufnimmt und ueber einen index speichert.
bsp:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| DirectoryInfo dir = new DirectoryInfo(@"c:\\Music\cd1"); FileInfo[] files = dir.GetFiles("*.mid");
List<string> pList = new List<string>();
foreach (FileInfo file in files) { listBox1.Items.Add(file.Name); pList.Add(file.Name); } |
Nr 2 ist ein playstate_changed event des Windowsmediaplayers,
durch diesen moechte ich folgendes erreichen:
Ueber einen Button wird der erste eintrag in der listbox selektiert,
das lied wird abgespielt und der index der listbox +1 hochgesetzt,
sofern das lied zuende ist oder vom User auf stop gestellt wurde.
Das klappt wunderbar.
Nun moechte ich aber das naechste lied automatisch abspielen lassen,
nachdem der index der listbox +1 hochgzaehlt und das item selektiert wurde.
Buttonevent:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| private void button1_Click(object sender, EventArgs e) { selector = true; listBox1.SetSelected(0, true); axWindowsMediaPlayer1.URL = @"c:\\Music\cd1\Anxious_Heart.mid"; axWindowsMediaPlayer1.Ctlcontrols.play(); } |
AxMediaPlayer_State_changed event:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| private void axWindowsMediaPlayer1_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e) { if (selector == true) { if (e.newState == 8) { listBox1.SelectedIndex += 1; } axWindowsMediaPlayer1.Ctlcontrols.play(); } } |
Wie kann ich von diesem Event auf Event nr1 zugreifen`?
Alles, was ich bisher rausfand:
- ueber get/set?
- ueber Eventhandler
Ich versuche, auf eine windowsmediaplayer playliste zu verzichten
oder anders gesagt: Ich hab es bisher nicht hinbekommen, eine zu erstellen.
Also die Frage nochmal: Wie kann ich es ermoeglichen, auf die pListe zuzugreifen?
Oder gibt es einfachere Wege, als den ..den ich hier gezeigt habe?
Vielen dank.