Partage

[vb.net] affichage d'une image

Le 14 février 2011 à 18:47:49

Bonjour à vous,

J'ai crée une bibliothèque grâce au TP sur le cour de VB.NET que j'ai personnalisé, et j'aimerai intégrer une image qu'on cherche sur l'ordinateur, donc j'ai fait un bouton parcourir, mais après est-ce-que c'est compliquer de faire en sorte que l'image sélectionné s'affiche dans l'image-box ? :)
Publicité
Le 14 février 2011 à 18:47:49
Le 14 février 2011 à 19:23:21

Si l'image est n'importe où sur ton ordi il faudra que tu prennes son adresse absolue (C:\\.....\\monimage.jpg par exemple) et après tu fais MaPictureBox.ImageLocation = adresse_relative , où adresse_relative est le string valant C:\\...\monimage.jpg.

Après dans le détail je ne sais pas trop comment récupérer l'adresse absolue d'un élément, ni comment gérer le parcourir, mais je crois qu'il y a tout ce qu'il faut pour gérer ça, il faut juste trouver les bons outils.
Le 14 février 2011 à 19:25:38

Faut utiliser un OpenFileDialog. (lis la documentation sur ses méthodes et membres ;-) )
Le 14 février 2011 à 19:43:10

En faite l'image je la stocke dans un dossier image qui se trouve dans le même dossier que l'exe, et je voudrai que en fonction de la fiche ben il y est l'image qui apparaisse ^^
Le 14 février 2011 à 21:57:53

WinForms ou WPF ? Y aurait une solution élégante en WPF avec des bindings.
Le 14 février 2011 à 23:11:41

Tu code en WinForms il me semble, j'ai dû faire un truc similaire sur un prog.
Déjà tu as mis le dossier au bon endroit, du coup tu n'as plus besoin du chemin absolu mais du relatif, en gros pour accéder à tes images tu as juste à faire \Image\NomImage.jpg.
Bon par contre si tu veux passer par un "parcourir" etc je sais toujours pas, la bonne idée est celle d'Aethec, passer par un OpenFileDialog.
Après par contre pour la PictureBox , je te conseille de faire ça :
MaPictureBox.ImageLocation = Application.StartupPath & "\Images\" & string_nom_image
ou quelque chose comme ça.
En faisant ça tu pourras déplacer ton application où tu veux (autre emplacement de l'ordi, autre ordi), et tant que le dossier image sera avec le .exe tes images apparaîtrons.
Le 15 février 2011 à 8:12:46

Oui je code en WindowsForm c'est quoi WPF ?

Mais en faite MachFly si j'ai bien compris ce que tu me dis la c'est pour mettre une image fixe nn ? Parce-que moi je voudrai mettre l'image qui correspond au film ^^
Le 15 février 2011 à 10:37:43

Non avec ce que je te dis tu peux très bien faire ce que tu veux.
Mais d'abord faut que puisses parcourir tes images et les récupérer. Ce que je ne comprend pas bien dans ta démarche c'est que tu veux les mettre dans un dossier du projet et ensuite parcourir juste ce dossier. A la limite si tu es sûr que tes images sont dans ce dossier, tu mets un bouton "ajouter image" qui ouvre une mini-fenêtre avec une textbox et deux boutons OK et Annuler.
Dans la textbox tu mets le nom de l'image (avec l'extension), et pour l'évènement Bouton_Ok_click tu mets :
MaPictureBox.ImageLocation = Application.StartupPath & "\Images\" & textbox.text

Par contre il faut tester avant que le chemin existe, quoique je ne suis pas sûr que ça renvoie une erreur. Il me semble même que non, ça t'affichera rien si l'image n'existe pas.

Enfin ça fait peut-être bidouillage, c'est vrai qu'un parcourir serait plus propre, mais comme je dis si tu n'as qu'un dossier, pourquoi s'embêter.

EDIT : Je suis en train de me demander, ton image doit être enregistrer quand tu fermes ton programme, donc il faut que ce soit un élément de ta classe Film (ou Livre selon le cas) pour pouvoir le sérialiser. Mais ça ne change rien à ce que je dis au-dessus.
Le 15 février 2011 à 10:48:46

Oui il faut que je rajoute une propriété dans ma classe film ou livre pour qu'il sérialise l'image aussi ^^

Alors oui je me suis peux être un peux emmêler les pinceaux, au début ce que je voulais faire c'est faire une bouton parcourir qui me cherche l'image peux importe ou elle se trouve et ensuite me la stocke dans le dossier image puis sérialise le nom ^^

Mais c'est vrai que c'est plus simple si je place directement l'image dans le dossier image.

Il faut que je teste ta méthode pour voir ça me parait pas mal du tout ^^, mais pour la propriété dans la classe film ou livre, on est bien d'accord qu'il faut juste stocker le nom de l'image ? donc au format String ?
Le 15 février 2011 à 12:28:11

Oui voilà, en String!
Le 15 février 2011 à 14:14:57

ok je vais essayer ça et je te tiens au courant ^^
Le 15 février 2011 à 16:27:53

Pour répondre à ta question, WPF est le "successeur" si on peut dire ça comme ça de WinForms ; à partir du framework 3.0 le développement WinForms a été abandonné.
Parmi les avantages de WPF se trouve les bindings, ou "liaisons" en français.
En gros, tu pourrais faire une classe contenant une image, sa description, son titre, etc., une liste de ces images (dans le code) puis dans l'interface tu dis "je veux une grille qui contienne ma liste d'images" et "je veux une image dont la source soit une propriété de l'élément sélectionné dans la grille". :)
Le 15 février 2011 à 17:44:19

L'inconvénient (de WPF) c'est que si t'as pas Blend (payant et dans la suite maximale de Visual Studio), et bien tu peux toujours t'amuser a construire une grosse appli, y'a intéret a etre patient ...
En gros WPF c'est un gros coup dans ton ***
Le 15 février 2011 à 18:08:01

Oui enfin bon si tu veux vraiment des grosses applis c'est que t'as le fric pour...pour des "petites" applis (ou du Silverlight) y en a vraiment pas besoin.
Perso je trouve que coder du XAML à la main c'est quand même bien plus pratique qu'avec du drag-n-drop.
Le 19 février 2011 à 13:08:02

bonjour je reviens vers vous :)

J'ai donc fait comme MachFly ma dit j'ai crée un Windows forms avec une textbox et un bouton annulé et valider ^^

et j'ai donc ça
Public Class Image

    Private Sub BT_OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_OK.Click
        PictureBox.ImageLocation = Application.StartupPath & "\Images\" & TXT_IMAGE.Text
    End Sub
End Class


mais il me met une erreur sur le PictureBox.ImageLocation, il me dit qu'il manque une référence d'objet, donc faut que je déclare quelque chose en global ou un objet ?
Le 20 février 2011 à 15:37:32

Tu as bien fait en sorte que la PictureBox soit celle de la fenêtre de la fiche film?
Je pense que ça vient de là. TXT_IMAGE.Text contient quoi exactement? Le nom de l'image avec l'extension? Si c'est bien ça alors ça c'est bon.

Je pense que ça vient bien de la PictureBox, il faut bien que tu lui dise laquelle modifier.
Le 21 février 2011 à 12:25:15

PictureBox.ImageLocation

Tu sembles accèder à la classe PictureBox, et non à l'objet de type PictureBox que tu as normalement instancié avant (ou dans le designer).
Si ta picturebox s'appelle PictureBox1, il te faut mettre :
PictureBox1.ImageLocation
Le 7 mars 2011 à 14:51:22

Dsl pour l'attente ^^ j'étais en vacance :) , quand tu dis la fenêtre de la fiche film tu entends quoi exactement ?
Le 16 mars 2011 à 15:13:19

Tu as vérifié ce que je disais juste au dessus ??
Comment s'appelle ta picturebox ?
Si c'est "PictureBox" renomme la en "PictureBox1" par exemple

L'erreur est à la compilation ou à l'éxécution ?

[vb.net] affichage d'une image

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown