Récupérer la valeur des textbox et enregistrer un graphique

Signaler
-
Messages postés
15176
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
2 décembre 2020
-
Bonjour à tous,

je suis une débutante en C# et je suis actuellement en train de programmer un générateur de fractales ,je voudrais pouvoir récupérer des valeurs entrées dans les textbox d'une 2ème form (paramètres) pour les réutiliser dans la première,de même pour générer ces fractales j'utilise un graphics et je voudrais savoir si je peux l'enregistrer comme une image.

Merci d'avance.

4 réponses

Messages postés
15176
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
2 décembre 2020
466
Bonjour le transfert de données d'un formualire à l'autre est une question récurrente.

Il y a ce code source, ou cette discussionparmi tant d'autres

Whismeril
Messages postés
15176
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
2 décembre 2020
466
et pour exporter l'image d'un controle ce code marche bien
        private void ExportImage(Control control)
        {
            control.Refresh();//force le refresh pour que le popup menu ne soit plus affiché

            Bitmap bmp = ImpressionEcran.CaptureControl(control);
            
            string fichier = control.Text + ".png";
            bmp.Save(fichier, ImageFormat.Png);

            Process.Start(fichier);
        }


avec impressionEcran définit comme suit
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace MesOutils
{
    public static class ImpressionEcran
    {
        [DllImportAttribute("gdi32.dll")]
        private static extern bool BitBlt(
        IntPtr hdcDest,
        int nXDest,
        int nYDest,
        int nWidth,
        int nHeight,
        IntPtr hdcSrc,
        int nXSrc,
        int nYSrc,
        int dwRop);

        public static Bitmap CaptureControl(Control control)
        {
            Bitmap controlBmp;
            using (Graphics g1 = control.CreateGraphics())
            {
                controlBmp = new Bitmap(control.Width, control.Height, g1);
                using (Graphics g2 = Graphics.FromImage(controlBmp))
                {
                    IntPtr dc1 = g1.GetHdc();
                    IntPtr dc2 = g2.GetHdc();
                    BitBlt(dc2, 0, 0, control.Width, control.Height, dc1, 0, 0, 13369376);
                    g1.ReleaseHdc(dc1);
                    g2.ReleaseHdc(dc2);
                }
            }

            return controlBmp;
        }
    }
}


Whismeril
Bonsoir Whismeril,
merci pour votre réponse et donc pour enregistrer l'image il y a 2 méthodes ou bien c'est une seule méthode composée de 2 codes ?
Messages postés
15176
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
2 décembre 2020
466
Dans ce cas il faut utiliser les deux codes


Whismeril