Djmann1013 0 Mr. Parker

I am trying to make a MP3 player using axWindowsMediaPlayer, and I am running into some issues.
When the song stops playing, it is supposed to go on to the next song in the list, but instead it locks up.
I don't know how to fix this, I tried googling very hard and it turned up nothing.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using System.Threading;
using System.Collections;

namespace MusicPlayer
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        string[] f, p;
        ArrayList playlist = new ArrayList();
        private int current_index = 0;

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog open = new OpenFileDialog();

            if(openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK){
                f = openFileDialog1.SafeFileNames;
                p = openFileDialog1.FileNames;

                for (int i = 0; i < f.Length; i++)
                {
                    listBox1.Items.Add(f[i]);
                }

                foreach (string d in open.FileNames)
                {
                    listBox1.Items.Add(d);
                }
            }
        }

        private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            axWindowsMediaPlayer1.URL = p[listBox1.SelectedIndex];
        }


        private void Form1_Load(object sender, EventArgs e)
        {
            axWindowsMediaPlayer1.PlayStateChange += new AxWMPLib._WMPOCXEvents_PlayStateChangeEventHandler(MediaPlayer_PlayStateChange);
        }

        public void MediaPlayer_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
        {
            switch (axWindowsMediaPlayer1.playState)
            {
                // Where it locks up at
                case WMPLib.WMPPlayState.wmppsReady:
                    axWindowsMediaPlayer1.URL = p[listBox1.SelectedIndex + 1];
                    break;
                case WMPLib.WMPPlayState.wmppsStopped:
                    axWindowsMediaPlayer1.URL = p[listBox1.SelectedIndex + 1];
                    break;
                default:
                    break;
            }
        }
    }
}