2010-07-19 7 views
0

J'ai une application Windows Forms VB.NET avec une image de logo sur le formulaire en tant que System.Drawing.Bitmap dans un PictureBox. J'ai utilisé Visual Studio Designer pour ajouter l'image .bmp du logo, donc je n'ai pas de code VB pour le moment. Je souhaite que le logo actuel soit un objet/bouton cliquable. Lorsque je clique dessus, une boîte de dialogue de navigateur s'ouvre et je peux sélectionner une nouvelle image pour remplacer l'image actuelle.Comment modifier une image dans une application Windows Forms VB.NET. System.Drawing.Bitmap dans un PictureBox

L'image actuelle est une ressource locale et est définie dans un PictureBox en tant que System.Drawing.Bitmap. Comment remplacer System.Drawing.Bitmap avec un fichier sélectionné dans la boîte de dialogue du navigateur de fichiers?

+0

D'accord, j'ai la boîte de dialogue du navigateur de fichiers accroché à un bouton et je peux sélectionner un fichier image. Je dois toujours détecter la taille du fichier sélectionné et définir la PictureBox à la taille correcte. Peut-être limiter la taille qui peut être sélectionnée? Je travaille sur la façon de copier le fichier sélectionné dans le dossier Signatures (pour Outlook), puis définir la référence au fichier image dans le fichier HTML qu'utilise Outlook pour les signatures .... – David

+0

J'ai actuellement ceci dans le fichier html pour la signature: et je veux remplacer "" WF1Logo.bmp "" avec "" {8} "" qui sera mis à cette construction: i = i.Replace ("{7}", txtWebURL.Text) i = i.Replace ("{8}", nomFichierFichier) – David

Répondre

1

Salut David, vous pouvez changer l'image du picturebox en utilisant l'événement picturebox.click J'ai ajouté ci-dessous

Private Sub PictureBox1_Click(ByVal sender As System.Object, _ 
    ByVal e As System.EventArgs) Handles PictureBox1.Click 
    Dim OpenFileDialog1 As New OpenFileDialog 

    If OpenFileDialog1.ShowDialog Then 
     Try 
      Dim NewPic As New System.Drawing.Bitmap(OpenFileDialog1.FileName) 
      PictureBox1.Image = NewPic 
      PictureBox1.SizeMode = PictureBoxSizeMode.Zoom 
     Catch ex As Exception 
      MsgBox("An error has occurred" & Chr(13) & Chr(13) & ex.Message) 
     End Try 
    End If 
End Sub 

Hope this vous aide

+0

Vous souhaiterez également ajouter des filtres pour des types de fichiers spécifiques (jpg gif etc) que j'ai oublié d'ajouter le code ci-dessus - de cette façon, vous n'aurez pas besoin d'utiliser l'instruction try pour attraper er rors si l'utilisateur sélectionne un format de fichier invalide Pour plus d'informations sur l'utilisation des filtres de fichiers http://msdn.microsoft.com/fr-fr/library/microsoft.win32.filedialog.filter.aspx –

+0

Merci! Est-il possible de rendre la nouvelle image perméable ou la nouvelle "image par défaut"? Je veux dire perminente afin que l'application puisse être redistribuée à quelqu'un d'autre, peut-être dans une organisation différente et la nouvelle image serait la nouvelle valeur par défaut. – David

+0

Peut-être regarder copier le fichier image dans le répertoire de démarrage comme logo.jpg par exemple, puis sur l'événement de chargement vérifier si ce fichier existe si donc charger que l'image initiale de la boîte d'image ---> Il pourrait y avoir une meilleure façon pour ce faire, mais rien ne vient à l'esprit en ce moment –

Questions connexes