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 :

pop up d'une image, au click


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de lasrevinu
    Inscrit en
    Février 2010
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 215
    Par défaut pop up d'une image, au click
    Bonjour,
    j'ai crée un control chart avec Ms chart pour une application winform
    et je souhaiterai afficher en grand l'image du chart lors du clik sur ce dernier.

    je ne sais pas si les pop menu existent en c#
    sinon il existe l'alternative d'afficher l'image dans un nouveau formulaire temporaire comme ceci:

    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
    chartIta.Size = new Size(740, 580);
                Form frmDisplay = new Form();
                frmDisplay.ShowInTaskbar = false;
                frmDisplay.StartPosition = FormStartPosition.CenterParent;
                frmDisplay.Size = new Size(740, 580);
                // create a memory stream to save the chart image    
                System.IO.MemoryStream stream = new System.IO.MemoryStream();
                // save the chart image to the stream    
                chartIta.SaveImage(stream,System.Drawing.Imaging.ImageFormat.Bmp);
                // create a bitmap using the stream    
                Bitmap ImagePlot = new Bitmap(stream);
     
                // put the image in a control box
                PictureBox picBox = new PictureBox();
                picBox.Size = new Size(740, 580);
                picBox.Dock = DockStyle.Fill;
                ImagePlot.Size = new Size(740, 580); 
                frmDisplay.Controls.Add(picBox);
                frmDisplay.ShowDialog();
                stream.Dispose();
    Mon probleme est que la fonction Dock n'agrandit pas l'image dans la nouvelle fenetre,
    y aurait moyen de faire plus simple, quelqu'un a-t'il deja eu affaire a une situation pareil.
    merci ?

  2. #2
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    617
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 617
    Par défaut
    Pourquoi tu n'affiches pas directement ton chart dans la fenêtre ??

  3. #3
    Membre confirmé Avatar de lasrevinu
    Inscrit en
    Février 2010
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 215
    Par défaut
    Merci PPHYL pour ta reponse,
    J'ai essayé de le faire,
    j'ai fait form.add
    cepandant, le chart est deplacé dans la nouvelle form,
    y a t-il un autre moyen pour l'afficher ?

  4. #4
    Membre confirmé Avatar de lasrevinu
    Inscrit en
    Février 2010
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 215
    Par défaut Solution, Serializer et MemoryStream
    J'ai trouver un moyen de le faire,
    en copiant le chart dans un autre chart temporaire eten affichant ce dernier,
    pour cela j'utilise un memorystream,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Chart tempChart = new Chart();
    MemoryStream ms = new MemoryStream();
    myChart.Serializer.Save(ms);
    // Load data from memory stream into the temp chart
    ms.Seek(0, SeekOrigin.Begin);
    tempChart.Serializer.Load(ms);
    //a present je dispose de la copie de myChart
    voila

  5. #5
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    617
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 617
    Par défaut
    cepandant, le chart est deplacé dans la nouvelle form,
    C'est vrai que ces chart on parfois des comportements bizarres....

  6. #6
    Membre confirmé Avatar de lasrevinu
    Inscrit en
    Février 2010
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 215
    Par défaut
    Si je puis me permetre de continuer dans ce post,
    j'aurai une tit question
    je voudrais creer un evenement pour que lorsque je click sur la fenetre elle se ferme,

    j'ai fait cela mais ca ne fonctionne pas..

    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
    25
    26
    27
    28
    29
            private void chartIta_Click(object sender, EventArgs e)
            {
                Chart tempChart = new Chart();
                // Save chart into the memory stream
                MemoryStream ms = new MemoryStream();
                chartIta.Serializer.Save(ms);
                // Load data from memory stream into the second chart
                ms.Seek(0, SeekOrigin.Begin);
                tempChart.Serializer.Load(ms);
                ms.Close();
                tempChart.Size = new Size(770, 620);
     
                Form frmDisplay = new Form();
                frmDisplay.ShowInTaskbar = false;
                frmDisplay.StartPosition = FormStartPosition.CenterParent;
                frmDisplay.FormBorderStyle = FormBorderStyle.None;
                frmDisplay.Size = new Size(770, 620);
                tempChart.Dock = DockStyle.Fill;
                //adds the temporary chart to the new form
                frmDisplay.Controls.Add(tempChart);
                frmDisplay.ShowDialog();
     
                frmDisplay.Click += new EventHandler(frmDisplay_Click);
            }
     
            void frmDisplay_Click(object sender, EventArgs e)
            {
                this.Close();
            }
    merci

Discussions similaires

  1. Positionner une image au click
    Par nasimpat7 dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 15/08/2010, 13h15
  2. [HTML 4.0] Telecharger une image sans click droit
    Par andromeda dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/03/2009, 14h08
  3. charger une image au click de la souris
    Par SALISTASE dans le forum Général JavaScript
    Réponses: 27
    Dernier message: 14/04/2008, 13h34
  4. afficher une image au click
    Par Katachana dans le forum EDT/SwingWorker
    Réponses: 4
    Dernier message: 04/10/2007, 00h06

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