Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Плейлист


Автор: qojqva 16.5.2013, 17:45
Здравствуйте,помогите пожалуйста с кодом на удаление записи из моего плейлиста(Listbox1)
Вот, к примеру мой вариант по кнопке delete

Код

  if (e.KeyCode == Keys.Delete)
             {
                 listBox1.Items.Remove(listBox1.SelectedItem);
                
             }

но он работает не так как мне хотелось бы. 
к примеру, в плейлисте 3 песни:1.mp3,2.mp3 и 3.mp3
дак вот,когда мы проигрываем 1.mp3 и к примеру, хотим удалить 2.mp3
удаляем
данный трек действительно удалился из плейлиста,но когда мы нажимаем проигрывать след.трек,то плеер переходит на 2.mp3,хотя мы только что его удалили,что за х
помогите!

Автор: Machaon 18.5.2013, 00:14
Вот набросал проект как раз по той теме что тебе нужно посмотри как я делаю и поймешь:

Код

using System;
using System.Collections;
using System.IO;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class MainFrom : Form
    {
        public ArrayList playlist = new ArrayList();

        public enum Track
        {
            Next, Back, Delete, Random
        }

        public MainFrom()
        {
            InitializeComponent();
        }

        private void Get_Track_Click(object sender, EventArgs e)
        {
            playlist.Clear();
            Get_playlist();
            Update_playList();
        }

        private void Delete_Track_Click(object sender, EventArgs e)
        {
            Play_List(Track.Delete);
        }

        private void Next_track_Click(object sender, EventArgs e)
        {
            Play_List(Track.Next);
        }

        private void Back_track_Click(object sender, EventArgs e)
        {
            Play_List(Track.Back);
        }

        private void Random_Track_Click(object sender, EventArgs e)
        {
            Play_List(Track.Random);
        }

        private void Play_List(Track change_event)
        {
            switch (change_event)
            {
                case Track.Next:
                    if (PlayListBox.SelectedIndex < PlayListBox.Items.Count - 1)
                    {
                        PlayListBox.SelectedIndex = PlayListBox.SelectedIndex + 1;
                    }
                    break;
                case Track.Back:
                    if (PlayListBox.SelectedIndex > 0)
                    {
                        PlayListBox.SelectedIndex = PlayListBox.SelectedIndex - 1;
                    }
                    break;
                case Track.Random:
                    if (PlayListBox.Items.Count > 0)
                    {
                        Random Random_Track = new Random();
                        int track_rnd = Random_Track.Next(0, PlayListBox.Items.Count);
                        PlayListBox.SelectedItem = PlayListBox.Items[track_rnd].ToString();
                    }
                    break;
                case Track.Delete:
                    if (PlayListBox.Items.Count >= 0)
                    {
                        int index = PlayListBox.SelectedIndex;
                        playlist.Remove(PlayListBox.SelectedItem);

                        if (PlayListBox.Items.Count > 1)
                        {
                            
                            if (index == 0) { index = 0; } else { index = index - 1; }
                            Update_playList();
                            PlayListBox.SelectedIndex = index;
                        }
                        else
                        {
                            Update_playList();
                            string[] text = play_status.Text.Split(':');
                            play_status.Text = text[0] + ": Список пуст!";
                        }                    
                    }
                    break;
            }

        }

        private void Get_playlist()
        {
            playlist.AddRange(File.ReadAllLines("playlist.txt", Encoding.GetEncoding(1251)));
        }

        private void Update_playList()
        {
            BindingSource DataBind = new BindingSource();
            DataBind.DataSource = playlist;
            PlayListBox.DataSource = DataBind;
        }

        private void PlayListBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            string[] text = play_status.Text.Split(':');
            play_status.Text = text[0] + ": " + PlayListBox.SelectedItem;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("*****Тут твоя функция для воспроизведения*****\n\r\n\r" + "Выбран элемент: " + PlayListBox.SelectedItem.ToString());
        }



    }
}



А вот сам проект: 

Автор: qojqva 4.6.2013, 21:45
я новичок в с# и пока еще не очень разбираюсь
вот мой проект
можно это реализовать как-то в моей программе?

Автор: wester 5.6.2013, 14:04
qojqva,  реализовать можно  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)