none
Acceder au élément de Form1 dans un Form2 RRS feed

  • Question

  • Bonjour j'ai 2 forme dans l'une d'elle j'ai un webBrowser et dans l'autre j'ai un composant image que j'ai modifier.

     

    Je voudrais insérer l'image que j'ai dans la form2 dans la form1.

    pour inserer je fais :

     HTMLEditor.DocumentText = "<img src='" + @"C:\Users\Sarah\test\image2.jpg" + "' />"; 
    

    mais bien sur j'ai une erreur pour HTMLEditor qui est mon élément webBrowser dans la form1

    lundi 23 janvier 2012 16:16

Réponses

  • Bonjour,

    La méthode Show() est non modale et donc ne bloque pas l'appelant et donc le code continue à s'exécuter juste après.
    Pour afficher une fenêtre modale, utilisez la méthode ShowDialog() :

    picture.ShowDialog();
    
    

    PS : J'ai fusionner votre autre question dans le même discussion.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    • Proposé comme réponse Ciprian Duduiala mercredi 25 janvier 2012 11:41
    • Non proposé comme réponse SarahChou mercredi 25 janvier 2012 12:46
    • Marqué comme réponse SarahChou mercredi 25 janvier 2012 14:30
    mercredi 25 janvier 2012 10:46
    Modérateur

Toutes les réponses

  • Bonjour,

    Dans ta Form1, il faut passer par un Using comme ceci, comme il est dit ici:

     


    fred on youTube
    PHP MySQL Web Site Creator
    fred
    lundi 23 janvier 2012 17:08
  • oui je le fais !! 

    dans le HTMLEditor :

     private void imageButton_Click(object sender, EventArgs e)
            {
    
                using (Image picture = new Image())
                {
                    picture.Show();
    
                    if (accepte)
                    {
                        HTMLEditor.DocumentText = "<img src='" + @"C:\Users\Sarah\test\image2.jpg" + "' />";
                    }
                }
    
            }
    


    et dans image ..

     

    public partial class Image : Form
        {
            public int height;
            public int width;
            private string path;
            public OpenFileDialog open = new OpenFileDialog();
            public static bool accepte = false; 
           
           
            public Image()
            {
                InitializeComponent();
    
            }
    
            private void ouvrir_Click(object sender, EventArgs e)
            {
                try
                {
                 
                    open.Filter = "Image Files(*.jpg; *.jpeg; *.gif; *.bmp)|*.jpg; *.jpeg; *.gif; *.bmp";
    
                    if (open.ShowDialog() == DialogResult.OK)
                    {
                        pictureBox1.Image = new Bitmap(open.FileName);
                    }
    
                  
                }
    
                catch (Exception)
                {
                    throw new ApplicationException("Failed loading image");
                }
    
    
                path = openFileDialog1.FileName;
    
    
                height = pictureBox1.Image.Height;
                width = pictureBox1.Image.Width;
                label3.Text = height.ToString();
                label4.Text = width.ToString();
            }
    
        
    
    
         
    
    
            
            private void ok_Click(object sender, EventArgs e)
            {
                //HTMLEditor.DocumentText = "<img src='" + @"C:\Users\Sarah\test\image2.jpg" + "' />";
                accepte = true;
               
            }
    
           
            
            private void apercu_Click(object sender, EventArgs e)
            {
                ResizeImage(open.FileName, @"C:\Users\Sarah\test\image2.jpg", Convert.ToInt32(textBox1.Text), Convert.ToInt32(textBox2.Text), true);
    
            }
    
            public void ResizeImage(string OriginalFile, string NewFile, int NewWidth, int MaxHeight, bool OnlyResizeIfWider)
            {
                //pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
    
                System.Drawing.Image FullsizeImage = System.Drawing.Image.FromFile(OriginalFile);
    
                // Prevent using images internal thumbnail
                FullsizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone);
                FullsizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone);
    
                if (OnlyResizeIfWider)
                {
                    if (FullsizeImage.Width <= NewWidth)
                    {
                        NewWidth = FullsizeImage.Width;
                    }
                }
    
                int NewHeight = FullsizeImage.Height * NewWidth / FullsizeImage.Width;
                if (NewHeight > MaxHeight)
                {
                    // Resize with height instead
                    NewWidth = FullsizeImage.Width * MaxHeight / FullsizeImage.Height;
                    NewHeight = MaxHeight;
                }
    
                System.Drawing.Image NewImage = FullsizeImage.GetThumbnailImage(NewWidth, NewHeight, null, IntPtr.Zero);
               
                // Clear handle to original file so that we can overwrite it if necessary
                FullsizeImage.Dispose();
                pictureBox1.Image = NewImage;
                    // Save resized picture
                    NewImage.Save(NewFile);
    
            }
    
    

    c'est vachement ralant car j'ai su tout faire et suis bloquer a une étape et c'est frustrant ...

    mardi 24 janvier 2012 14:48
  • Bonjour,

    "pour inserer je fais :

     HTMLEditor.DocumentText = "<img src='" + @"C:\Users\Sarah\test\image2.jpg" + "' />"; 
    

    mais bien sur j'ai une erreur pour HTMLEditor qui est mon élément webBrowser dans la form1"

    Pouvez-vous nous expliquer plus précisement ce qui pose problème ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    mardi 24 janvier 2012 22:54
    Modérateur
  • Bonjour , je voudrais insérer une image modifier dans une autre form dans un webBrowser dans ma forme principale.

    Mais je n'y arrive pas.

    Mon problème est que dans ma forme principale je fais ceci :

    private void imageButton_Click(object sender, EventArgs e)
            {
    
                Image picture = new Image();
                picture.Show();
                MessageBox.Show(" valeur : " + picture._accepted);
    
                    if (picture._accepted)
                    {
                        HTMLEditor.DocumentText = "<img src='" + @"C:\Users\Sarah\test\image2.jpg" + "' />";
                        picture.Close();
                    }
                
    
            }
    

    et dans la form secondaire , donc celle ou je modifie ma photo je fais ceci 
     public bool _accepted = false;
    
    public bool Accepted
            {
                get
                {
                    return _accepted;
                }
            }
    
    
     private void ok_Click(object sender, EventArgs e)
            {
                _accepted = true;
                MessageBox.Show(" valeur dans ok  : " + _accepted);
             
            }
    
    
    
    


    Mon soucis est que la variable _accepte ne change pas de valeur dans ma form principale donc forcément ma photo ne s'affiche pas . 

    Merci de votre aide :)

     

     

    mercredi 25 janvier 2012 10:13
  • Bonjour, Gilles Tourreau,

     

    J'ai mis mes idées au claire et j'avoue que cette question n'avait rien de claire, donc j'ai reprécisé mon problème dans un autre topic ,

    voici le lien : http://social.msdn.microsoft.com/Forums/fr-FR/visualcsharpfr/thread/bad791cf-7d01-413b-a46d-eee3dde80e00

    mercredi 25 janvier 2012 10:18
  • Bonjour,

    La méthode Show() est non modale et donc ne bloque pas l'appelant et donc le code continue à s'exécuter juste après.
    Pour afficher une fenêtre modale, utilisez la méthode ShowDialog() :

    picture.ShowDialog();
    
    

    PS : J'ai fusionner votre autre question dans le même discussion.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    • Proposé comme réponse Ciprian Duduiala mercredi 25 janvier 2012 11:41
    • Non proposé comme réponse SarahChou mercredi 25 janvier 2012 12:46
    • Marqué comme réponse SarahChou mercredi 25 janvier 2012 14:30
    mercredi 25 janvier 2012 10:46
    Modérateur
  • oui j'ai remarquer cette erreur et je l'ai corriger mais même avec cela ça ne fonctionne pas :(

    je pense que le problème réside dans la variable _accepte qui ne change pas de valeur dans la première form dans ce cas "true" au moment du click sur le boutons dans la seconde forme .

    mercredi 25 janvier 2012 12:48
  • Bonjour,

    Est-ce que l'événement "ok_Click" est bien déclenché ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    mercredi 25 janvier 2012 13:01
    Modérateur
  • oui car j'ai mis des messageBox pour controlé ce qu'il y a dans ma variable et celle-ci change de valeur elle passe a true des que je  ferme ma deuxième form...

    Je ne comprend pas mon erreur :(

     

    Bien à vous

    mercredi 25 janvier 2012 13:11
  • Bonjour,

    Est-il possible que vous puissiez nous publier sur SkyDrive une partie de votre application (ou un projet équivalent qui reproduirait le problème) ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    mercredi 25 janvier 2012 13:29
    Modérateur
  • si ça ne dépendais que de moi je le ferais mais comme je fais cette application pour une entreprise dans laquelle je suis en stage et si elle se retrouve sur le web je pense pas que ça leur plaira :(

     

     

    mercredi 25 janvier 2012 13:35
  • J'ai suivit vos conseille et l'insertion s'effectue .

     

    Comme un problème n'arrive jamais seul, j'ai un problème avec mon webbrowser car quand j'inserre une image un tit carrée blanc avec un croix rouge s'affiche et non l'image

     

    Maintenant que je connais le problème je ne sais pas pourquoi ça se produit :(

     

    Bien à vous :)

    mercredi 25 janvier 2012 13:49
  • Bonjour,

    Pouvez-vous nous dire d'où venez exactement le problème ?
    Est-il possible que vous puissiez ouvrir un nouveau sujet de discussion pour le problème avec le WebBrowser ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    mercredi 25 janvier 2012 14:10
    Modérateur
  • bien sur ..  le problème était lier au show(); je pensais l'avoir changé mais non et j'ai fait quelque modification concernant la variable _accepted

    car je la declarer comme public et je n'utilisais pas le Get que j'avais fait

     

    pour etre plus claire je fesait


        

                if (picture._accepte)
                    {
                        HTMLEditor.DocumentText = "<img src='" + @"C:\Users\Sarah\test\image2.jpg" + "' />";
                       
                    }

     

    au lieu de
              

          if (picture.Accepted)
                    {
                        HTMLEditor.DocumentText = "<img src='" + @"C:\Users\Sarah\test\image2.jpg" + "' />";
                       
                    }
    


    Même aprés avoir fait ces modifications je pensais que j'avais un soucis car mon webBrowser n'affichait qu'une image d'erreur.

    ensuite j'ai eu l'idée d'inserer une simple image et le résultat etait le même donc le problème ne venait pas de la communication entre mes deux formes mais du webbrowser lui même ...

     

    j'espère avoir été assez claire dans ma réponse

     

    Encore merci a vous monsieur Gilles Tourreau pour vos précieux conseils :)

     

    mercredi 25 janvier 2012 14:30