Forum Pplware

Versão Completa: Resolvendo um desafio . . .
Está de momento a ver uma versão reduzida do nosso conteúdo. Ver versão completa com o formato adequado.
Olá a todos Big Grin
É o seguinte, um amigo desafiou-me para que fizesse um leitor de música e até aí tudo bem, consegui fazer mesmo nunca tendo programado em C#. .
O código do leitor de música é o seguinte:
Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace MP3
{
    public partial class MP3 : Form
    {

        string[] Musicas = new string[500];
        int con;
        public MP3()
        {
            InitializeComponent();
        }

        private void label1_Click(object sender, EventArgs e)
        {
            
        }

        private void Btn_Add_Click(object sender, EventArgs e)
        {
            OpenFileDialog abrir = new OpenFileDialog();

            abrir.Filter = " All Files (*.*) | *.*";
            abrir.FilterIndex = 1;

            abrir.Multiselect = true;


            if (abrir.ShowDialog() == DialogResult.OK)
            {
                for (int i = 0; i < abrir.FileNames.LongLength; i++)
                {
                    if (Ltb_Musicas.Items.Contains(abrir.FileNames.GetValue(i)) == false)
                    {
                        Ltb_Musicas.Items.Add(abrir.SafeFileNames.GetValue(i));
                        Musicas[con] = abrir.FileNames.GetValue(i).ToString();
                        con = con + 1;
                    }
                }
            }
            if (Ltb_Musicas.SelectedIndex < 0)
            {
                Ltb_Musicas.SetSelected(0, true);
            }
        }




        private void Btn_Play_Click(object sender, EventArgs e)
        {
            Player.URL = Musicas[Ltb_Musicas.SelectedIndex];
            Timer.Start();


        }

        private void Btn_Stop_Click(object sender, EventArgs e)
        {
            Player.Ctlcontrols.stop();

        }

        private void Btn_Pause_Click(object sender, EventArgs e)
        {
            Player.Ctlcontrols.pause();

        }

        private void Btn_Resume_Click(object sender, EventArgs e)
        {
            Player.Ctlcontrols.play();

        }

        private void Btn_Ant_Click(object sender, EventArgs e)
        {
            if (Ltb_Musicas.SelectedIndex != 0)
            {
                Ltb_Musicas.SetSelected(Ltb_Musicas.SelectedIndex - 1, true);
                Player.URL = Musicas[Ltb_Musicas.SelectedIndex];
            }
        }

        private void Btn_Post_Click(object sender, EventArgs e)
        {
            if (Ltb_Musicas.SelectedIndex != Ltb_Musicas.Items.Count - 1)
            {
                Ltb_Musicas.SetSelected(Ltb_Musicas.SelectedIndex + 1, true);
                Player.URL = Musicas[Ltb_Musicas.SelectedIndex];
            }
        }

        private void Btn_Pri_Click(object sender, EventArgs e)
        {
            Ltb_Musicas.SetSelected(1, true);
            Player.URL = Musicas[Ltb_Musicas.SelectedIndex];

        }

        private void Btn_Ult_Click(object sender, EventArgs e)
        {
            Ltb_Musicas.SetSelected(Ltb_Musicas.Items.Count - 1, true);
            Player.URL = Musicas[Ltb_Musicas.SelectedIndex];
        }

        private void Btn_Fast_Click(object sender, EventArgs e)
        {
            Player.Ctlcontrols.fastForward();
        }

        private void Timer_Tick(object sender, EventArgs e)
        {
            if (CB_Ale.Checked == true)
            {
                Random random = new Random();
                Ltb_Musicas.SetSelected(random.Next(Ltb_Musicas.Items.Count), true);
                Player.URL = Musicas[Ltb_Musicas.SelectedIndex];
            }
            
        }

        private void TB_Volume_Scroll(object sender, EventArgs e)
        {
            Player.settings.volume = TB_Volume.Value;

        }

        private void Ltb_Musicas_SelectedIndexChanged(object sender, EventArgs e)
        {
            


                
         }

        private void Player_Enter(object sender, EventArgs e)
        {

        }

        private void creditsToolStripMenuItem_Click(object sender, EventArgs e)
        {

        }

        private void creditsToolStripMenuItem_Click_1(object sender, EventArgs e)
        {
          
        }

        private void tabPage1_Click(object sender, EventArgs e)
        {

        }

        private void Player_Enter_1(object sender, EventArgs e)
        {

        }

        private void CB_Ale_CheckedChanged(object sender, EventArgs e)
        {

        }

        private void label1_Click_1(object sender, EventArgs e)
        {

        }

        

      

    }
}
A última parte não é importante . . Agora o que eu queria era o seguinte . . Dividir isto em tabs . .Já fiz uma para o player e outra para os créditos. . Mas quero que ao carregar nos créditos a ListBox desapareça, o que não está a acontecer agora . .
Aqui têm um link para o programa . .

Citar:http://rapidshare.com/files/418390500/Debug.rar
Alguma sugestão para resolver isto ? Confused
Viva,

Tu podias preencher a listbox durante o evento em que mudas de Tab. Não me recordo de cor qual é, mas se for índice do Tab for 0, preenche, senão, limpa.


Se aceitares críticas além do que pediste, vão as minhas recomendações em baixo:

1º Porque é que não pões o listbox dentro do teu tabcontrol?

2º Porquê um separador apenas para os créditos? Basta um botãozinho no canto para abrir um form pequeno com os créditos.

3º Muda o layout dos botões, e põe símbolos em vez de texto. Para texto, usa a propriedade Tooltiptext.

4º Limita o tamanho da janela, desliga o MaximizeButton.

5º Põe uma imagem estilo "wallpaper" simples, em vez de uma cor lisa.

6º Usa uma ArrayList em vez de um array. Não sei se conheces o termo Listas Ligadas em C, mas é melhor que uma array.

De resto, continua que estás no bom caminho.
URL's de Referência