axWindowsMediaPlayer работал правильно в моем классе Form, теперь я хотел создать абстрактную фабрику для разных проигрывателей и переместил axWindowsMediaPlayer в класс реализации этой фабрики. Но теперь событие playstatechanged больше не запускается, я что-то упустил? Это моя инициализация в конструкторе класса реализации:
axWindowsMediaPlayer1 = new AxWMPLib.AxWindowsMediaPlayer();
axWindowsMediaPlayer1.CreateControl();
axWindowsMediaPlayer1.BeginInit();
axWindowsMediaPlayer1.PlayStateChange += new AxWMPLib._WMPOCXEvents_PlayStateChangeEventHandler(axWindowsMediaPlayer1_PlayStateChange);
axWindowsMediaPlayer1.EndInit();
Позже событие происходит в классе реализации:
private void axWindowsMediaPlayer1_PlayStateChange(
object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
if (e.newState == 8)
{
this.playnext(listBox);
}
}
Итак, я что-то упустил, почему это работало в моей Winform, но не в моем другом классе?