IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

apelle d'un pictureBox dans autre Form


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 48
    Points : 42
    Points
    42
    Par défaut apelle d'un pictureBox dans autre Form
    Bonjour,

    j'ai la classe suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    namespace jpegdec
    {
        public partial class mainForm : Form
        {   
     
          public System.Windows.Forms.PictureBox pictureBox1;
    je veux appeler pictureBox1 dans une autre form pour l'envoyer par mail
    mais je n'arrive pas que faire svp ?
    merci d'avance .

  2. #2
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Bonjour,

    Ce n'est pas votre picturebox qu'il vous faut envoyer par mail, mais l'image qu'elle contient.

    A mon avis vous devez récupérer l'image par un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim img As System.Drawing.Image = PictureBox1.Image
    en faire un fichier puis attacher celui-ci à votre mail.
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  3. #3
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    Bonjour ;

    pour accéder à ton picturebox a partir d'une autre form il faut la declarer en public ;si tu la fait l'outils "boite des outils " il faut allez à la classe "Form1.Designer.cs" ("Form1" le nom de ta form ) la tu trouvera les controls que tu a glisser depuis la "boite des outils" tu peut changer la "private" par public.

    et l'envoi d'email je t'ai préparer une méthode pour faire ça (bien sur ce n'est pas 100% mon code )

    code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     private void btnSend_Click(object sender, EventArgs e)
            {
                SmtpClient client;
                MailMessage message;
                string path = "c:\\monimage";
                //construire le path ou je peut sauvegarder mon image 
                //get l'extension apartir de la imageformat pour complter le path
                path += "." + GetExtensionFromFormat(pictureBox1.Image);
                //suavegarder l'image en dur pour ensuite l'atacher à mon message 
                pictureBox1.Image.Save(path);
     
                // les infor sur le message msgbady 'le contenu du message '
                message = new MailMessage("usersender", "to", "subject","msgbady" );
                client = new SmtpClient("gmail.com");
                //  attacher l'image au message 
                message.Attachments.Add(new Attachment(path));
                client.Credentials = new System.Net.NetworkCredential("login", "password");
                client.EnableSsl = true;
                client.Send(message);
            }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
       string GetExtensionFromFormat(Image image)
            {  
                   ImageFormat imageFormat=image.RawFormat;
                    if(imageFormat== ImageFormat.Bmp)
                    return "Bmp";
                    else if( imageFormat==ImageFormat.Emf)
                        return "Emf";
                   else if( imageFormat==ImageFormat.Exif)
                        return "Exif";
                    else if( imageFormat==ImageFormat.Gif)
                        return "Gif";
                   else if( imageFormat== ImageFormat.Icon)
                        return "Icon";
                   else if( imageFormat== ImageFormat.Jpeg)
                        return "Jpeg";
                   else if( imageFormat== ImageFormat.MemoryBmp)
                        return "MemoryBmp";
                    else if( imageFormat== ImageFormat.Png)
                        return "Png";
                   else if( imageFormat==ImageFormat.Tiff)
                        return "Tiff";
                    else //( imageFormat== ImageFormat.Wmf)
                        return "Wmf";
                }

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 48
    Points : 42
    Points
    42
    Par défaut
    j'ai modifier le type de picturebox en public dans Form1.Designer.cs" et dans la boite à outils ,mais il y a toujours un problème ,en effet dans la 2 eme form il affiche toujours :


    The name 'pictureBox1' does not exist in the current context

  5. #5
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Supposons une Form1 avec une pictureBox ainsi qu'un bouton.

    Le bouton lance une Form2 qui accède à la pictureBox de la Form1 dans son événement Load.

    Code du bouton dans Form1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    private void button1_Click(object sender, EventArgs e)
    {
        // Je déclare ma form2
        Form2 dial = new Form2();
     
        // J'initialise la propriété déclarée dans Form2 comme Form1
        dial.frmAppelante = this;
     
        // J'affiche ma form2
        dial.ShowDialog();
    }
    Le code de Form2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    public partial class Form2 : Form
    {
        // Propriété 
        public Form1 frmAppelante { get; set;  }
     
        // Constructeur
        public Form2()
        {
            InitializeComponent();
        }
     
        // Evénement Load de ma form 
        private void Form2_Load(object sender, EventArgs e)
        {
            // frmAppelante référençant Form1 -> j'ai accès à la picturebox1
            // (dont la propriété "Modifiers" est déclarée en public)
            if (frmAppelante != null)
                Image img = frmAppelante.pictureBox1.Image;
        }
    }
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  6. #6
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    Citation Envoyé par hamza.rezgui Voir le message
    j'ai modifier le type de picturebox en public dans Form1.Designer.cs" et dans la boite à outils ,mais il y a toujours un problème ,en effet dans la 2 eme form il affiche toujours :


    The name 'pictureBox1' does not exist in the current context
    tu peux nous montrer ton code le code de la form1(Designer) et le code dans le quel tu a fait appel a pictureBox1

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 48
    Points : 42
    Points
    42
    Par défaut resolu
    bonjour,

    j'ai trouvé la solution en créant un constructeur

    form 1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Form obj = new Form2(this);
     obj.Show();
    public PictureBox GetPb()
    {
    return pictureBox1;
    }


    form : 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
       private Form1 mf;
     
     
            public Form2 (Form1 mf1): this()
            {
                this.mf = mf1;
            }
    pour l’appelle du pb:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Picturebox pb = mf.GetImage();

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. dessiner dans picturebox à partir d'une autre form
    Par doudou47 dans le forum VB.NET
    Réponses: 5
    Dernier message: 10/04/2012, 09h01
  2. Plusieurs PictureBox dans un Forms depuis une autre Forms
    Par grandthor dans le forum Windows Forms
    Réponses: 3
    Dernier message: 25/07/2009, 16h10
  3. [VB.NET] Utilisation d'une variable dans une autre form (!)
    Par neuropathie dans le forum Windows Forms
    Réponses: 5
    Dernier message: 08/12/2005, 13h09
  4. Réponses: 4
    Dernier message: 01/10/2005, 17h59
  5. Comment insérer une form dans une autre form ?
    Par marsupilami34 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/07/2005, 11h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo