Transfert de mp3 vers lecteur.

Soyez le premier à donner votre avis sur cette source.

Vue 14 077 fois - Téléchargée 988 fois

Description

Ce programme écrit en Csharp 2.0 sous Visual Studio 2005 permet de transférer des fichiers MP3 de vos disques vers le lecteur MP3 en supprimant les fichiers existants sur le lecteur, de façon automatique (au hasard) ou manuel.

Il y a quelques fonctions sympathiques dans ce programme notamment :

Une classe trouvée sur internet (BindingListSort) de gestion des Listes triables directement dans un datagridview.

La création simple d'une ProgressBar style XP dans le DatagridView.

// Ne pas oublier le VirtualMode pour gérer l'affichage de la ProgressBar
this.dataGridView.VirtualMode = true;
this.dataGridView.CellValueNeeded += new DataGridViewCellValueEventHandler(dataGridView_CellValueNeeded);

void dataGridView_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e)
{
DataGridView grid = (DataGridView)sender;
if (grid.Columns[e.ColumnIndex].Name == "Avancement")
{
int percent = ((Mp3)grid.Rows[e.RowIndex].DataBoundItem).Avancement;

Size size = grid.Rows[e.RowIndex].Cells[e.ColumnIndex].Size;
Bitmap image = new Bitmap(size.Width, size.Height);
Rectangle rectAvancement = new Rectangle(0, 0, size.Width, size.Height);
ProgressCell.Value = percent;
ProgressCell.Height = size.Height - 5;
ProgressCell.Width = size.Width - 5;
ProgressCell.DrawToBitmap(image, rectAvancement);
e.Value = image;
}
}

// Pour info n'oublier le click droit Refactor -> Encapsuled field pour la création simplifié
ProgressBar _ProgressCell;
public ProgressBar ProgressCell
{
get
{
if (_ProgressCell == null)
{
_ProgressCell = new ProgressBar();
// Obligatoire pour créer le handle d'affichage sans affectation à un control
_ProgressCell.CreateControl();
_ProgressCell.Style = ProgressBarStyle.Blocks;
}
return _ProgressCell;
}

}

La gestion des BackgroundWorker bien que j'en soit revenu, c'est vrai que le cette classe facilite la gestion des thread en tache de fond mais cette utilisation en quand même limité, il n'est pas possible par exemple de lancer un BackgroundWorker dans un BackgroundWorker. Je préfère maintenant utilise l'invoke pour l'affichage dans un thread séparé par exemple :

private delegate void AddNodeDelagateDef(TreeNode pNodeParent, TreeNode pNodeEnfant);
private AddNodeDelagateDef AddNodeDelagate = new AddNodeDelagateDef(AddNode);

if (pNode.TreeView.InvokeRequired)
pNode.TreeView.Invoke(AddNodeDelagate, new TreeNode[] { pNode, nodeRep });
else
AddNode(pNode, nodeRep);

private void AddNode(TreeNode pNodeParent, TreeNode pNodeEnfant)
{
pNodeParent.Nodes.Add(pNodeEnfant);
}

Codes Sources

A voir également

Ajouter un commentaire

Commentaire

artpinze
Messages postés
7
Date d'inscription
lundi 29 novembre 2004
Statut
Membre
Dernière intervention
4 juin 2007
-
bonjour je suis hors sujet je pense ,mais peut-etre que vous pourez m'aider je cherche un logiciel ou un programme qui serais capable de scanner des fichiers MP3 sur un disque dur
pour pouvoir copier coller juste les titres pour les mettre sur un editeur de texte(world) si vous avez des pistes merci !

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.