C# Glisser/déposer d'une image dans une pictureBox avec entrement de l'url dans
spikespiky
Messages postés1Date d'inscriptionsamedi 11 juillet 2009StatutMembreDernière intervention10 juillet 2011
-
10 juil. 2011 à 16:45
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 2015
-
11 juil. 2011 à 17:02
Bonjour,
Je suis débutant en C# et je travaille sur une application, mais je rencontre actuellement 2 soucis dont voici l'un des 2:
PS: Je suis sous Seven 32bit avec Visual Studio 2010 Ultimate et une base SQLite qui sera intégré à l'appli.
Mon appli est une vidéothèque. Je sais qu'il en existe déjà plein sur le net mais je fais ceci pour me perfectionné.
Je veux avoir la possibilité de mettre une jaquette sur chaque film, qui sera affiché à l'aide d'une pictureBox, mais le truc c'est que je souhaite gérer l'ajout d'une jaquette par cette même pictureBox comme cela:
1)J'ai une jaquette dans un dossier de mon PC.
2)Je souhaite sélectionné cette jaquette et la faire glisser dans ma pictureBox.
3)Mais cette jaquette doit automatiquement se copier dans un dossier "Jaquette" inclus dans l'appli (et supprimer la jaquette qui étais en place si toutefois il en a une).
4)Le chemin d'accès à cette jaquette nouvellement ajouté doit être enregistrer dans la Bdd (Ce nouveau chemin d'accès doit aussi effacer l'ancien chemin si il y en a un).
Donc comment faire ce DragDrop (Si c'est bien ça qu'il faut faire ...)?
Et comment copier la jaquette (donc l'image à proprement parlé) dans le dossier ainsi que son chemin dans la Bdd afin d'y accéder dans l'appli ?
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 11 juil. 2011 à 17:02
Salut
Je suppose que tu travailles en Winforms.
Pour la partie Drag and Drop :
- Sur ta picturebox, il faut mettre la propriété AllowDrop à true
- Dans les événements de ta picturebox, il faut ajouter un délégué pour DragDrop et un autre pour DragEnter
- Dans le délégué DragEnter (genre void maPictureBox_DragEnter(object sender, DragEventArgs e) ), tu changes l'effet de ta souris si c'est bien un fichier :
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Copy;
}
- Dans le délégué DragDrop (genre void maPictureBox_DragDrap(object sender, DragEventArgs e) ), tu récupères la liste des fichiers (même s'il n'y en a qu'un), et tu la traites :
string[] fichiers = (string[])(e.Data.GetData(DataFormats.FileDrop)); // Je sais, ça s'invente pas
// De là, tu as le chemin d'accès à ton fichier.
Maintenant que tu as récupéré le chemin d'accès à ton fichier, tu vas devoir faire les choses suivantes :
- Regarder dans ta base de données si tu as déjà une jaquette pour ce film, et si c'est le cas, récupérer son nom (SELECT nomJaquette FROM films WHERE idFilm = ...)
- Copier la nouvelle image vers le répertoire (File.Copy())
- Supprimer l'ancien fichier (File.Delete())
- Mettre à jour ta base de données (UPDATE films SET nomJaquette ... WHERE idFilm ...)
En revanche, fais attention au cas où les noms de tes fichiers seraient identiques.
Krimog : while (!(succeed = try())) ; - Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -