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

 .NET Discussion :

Générer liste de picturebox avec screenshot


Sujet :

.NET

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 2
    Points : 0
    Points
    0
    Par défaut Générer liste de picturebox avec screenshot
    bonjours,

    J'essaie de faire un logiciel qui capture l'écran



    Sur l'image l'on voit :
    - Le bouton qui prend des screen
    - Le cadre qui est juste un panel
    - Et la petite image en haut a gauche est une picturebox qui affiche le screen

    En faite j'essaie de faire que à chaque fois que l'on appuis sur le bouton, le screen apparait dans une picturebox
    à coté de la précédente picturebox sans que les picturebox sorte du panel

    Ca fait des heures je cherche, je galère trop si quelque peut m'aider S'il vous plait. Merci !

    Voici le 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
    21
    22
    23
    24
    Code Visual Basic :
     
      Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
     
            Dim bounds As Rectangle
            Dim screenshot As System.Drawing.Bitmap
            Dim graph As Graphics
            bounds = Screen.PrimaryScreen.Bounds
            screenshot = New System.Drawing.Bitmap(bounds.Width, bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb)
            graph = Graphics.FromImage(screenshot)
            graph.CopyFromScreen(bounds.X, bounds.Y, 0, 0, bounds.Size, CopyPixelOperation.SourceCopy)
            PictureBox1.Image = screenshot
     
            Dim Save_screen As New SaveFileDialog
            Try
                Save_screen.Title = "save file"
                Save_screen.FileName = "C:\users\user\desktop\screenshoot" & My.Settings.CompteurSave & ".bmp"
                Save_screen.Filter = "bitmap | *.bmp"
                PictureBox1.Image.Save(Save_screen.FileName, System.Drawing.Imaging.ImageFormat.Bmp)
                My.Settings.CompteurSave = My.Settings.CompteurSave + 1
            Catch ex As Exception
            End Try
     
        End Sub

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 2
    Points : 0
    Points
    0
    Par défaut
    Vu que personne n'a l'amabilité de répondre, voici le code qui peut résoudre une partie du problème :

    Dans la procédure d'événement du bouton, vous écrivez deux morceaux de code très différents, ce qui est quelque peu bor....que. Je vous demande de bien vouloir mettre le premier sous la forme d'une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Function BitmapProduit() As Bitmap
            Dim bounds As Rectangle
            Dim screenshot As System.Drawing.Bitmap
            Dim graph As Graphics
            bounds = Screen.PrimaryScreen.Bounds
            screenshot = New System.Drawing.Bitmap(bounds.Width, bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb)
            graph = Graphics.FromImage(screenshot)
            graph.CopyFromScreen(bounds.X, bounds.Y, 0, 0, bounds.Size, CopyPixelOperation.SourceCopy)
            Return screenshot
        End Function

    Construisons ensuite une procédure de création des contrôles PictureBox, étant bien entend que le PictureBox1 doit être supprimé,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub AjouterPictureBox(ByVal Bmp As Bitmap)
            Dim pic As New PictureBox, Rang As Integer
            listpic.Add(pic) : Rang = listpic.IndexOf(pic) ' : MessageBox.Show(Rang.ToString)
            With pic
                .Width = 50
                .Height = 50
                .Left = 3 + 56 * Rang
                .Top = 3
                .Image = Bmp
            End With
            Panel2.Controls.Add(pic)
        End Sub
    et il ne restera plus qu'à exploiter ces deux procédures par le bouton de commande,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
            AjouterPictureBox(BitmapProduit)
        End Sub

    L'algorithme de placement tient dans le calcul des propriétés Left et Top. J'ai pris pour l'instant un algorithme sommaire, qui met tous les PicturesBox sur une seule ligne. Il gagnerait à être amélioré.

    Cordialement. Merci à Zermelo

Discussions similaires

  1. Réponses: 10
    Dernier message: 28/04/2016, 22h03
  2. Réponses: 1
    Dernier message: 04/07/2012, 21h31
  3. Utilisation de la classe List de STL avec wxWidgets
    Par aoyou dans le forum wxWidgets
    Réponses: 7
    Dernier message: 10/03/2005, 17h41
  4. [std::list][find_if] problème avec mes foncteurs
    Par n!co dans le forum SL & STL
    Réponses: 12
    Dernier message: 04/02/2005, 11h56
  5. Réponses: 5
    Dernier message: 08/07/2002, 16h22

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