Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Fare lo screenshot del form in visual basic 2010?

    Salve a tutti. Ho fatto un programma in vb e ho messo un bottone sul quale voglio che si crei lo screenshot SOLO del form e non dell'intero desktop.

    Ho questo codice che mi fa lo screen e mi salva l'immagine ma questo prende tutto il desktop e non solo il form come desidero:

    Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal 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.Forma…
    graph = Graphics.FromImage(screenshot)
    graph.CopyFromScreen(bounds.X, bounds.Y, 200, 0, bounds.Size, CopyPixelOperation.SourceCopy)
    PictureBox1.Image = screenshot
    Dim savefiledialog1 As New SaveFileDialog
    Try
    savefiledialog1.Title = "Save File"
    savefiledialog1.FileName = ""
    savefiledialog1.Filter = "Bitmap |*.bmp"
    If savefiledialog1.ShowDialog() = DialogResult.OK Then
    PictureBox1.Image.Save(savefiledialog1.F… System.Drawing.Imaging.ImageFormat.Bmp)
    End If
    Catch ex As Exception
    'Do Nothing
    End Try
    End Sub

    Come posso fare?
    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    A parte il codice per salvare su disco, basta scrivere

    codice:
            Dim bmp As Bitmap = Nothing
    
            Me.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
    
            Me.PictureBox1.Image = Nothing
    
            Dim g As Graphics = Me.CreateGraphics()
    
            Dim sz As Size = Me.Size
            bmp = New Bitmap(sz.Width, sz.Height, g)
            Dim gr As Graphics = Graphics.FromImage(bmp)
            gr.CopyFromScreen(Me.Location.X, Me.Location.Y, 0, 0, sz)
    
            Me.PictureBox1.Image = bmp
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Se hai messo un pulsante sul Form, vuol dire che quando lo premi il form diventa attivo: a questo punto basta mandare al sistema con SenKeys la coppia di tasti Alt+Print.

    Questo copierà nella Clipboard l' immagine del solo Form.

    A questo punto con un Clipboard.GetImage() ti recuperi l' immagine.

    Volendo seguire il tuo metodo devi sostituire ai Bounds dello screen i Bounds del tuo form:

    Bounds = Me.bounds
    ...........................
    ...........................
    graph = Graphics.FromImage(screenshot)
    graph.CopyFromScreen(bounds.X, bounds.Y, 0, 0, _
    bounds.Size, CopyPixelOperation.SourceCopy)

    Bye

  4. #4
    Originariamente inviato da oregon
    A parte il codice per salvare su disco, basta scrivere

    codice:
            Dim bmp As Bitmap = Nothing
    
            Me.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
    
            Me.PictureBox1.Image = Nothing
    
            Dim g As Graphics = Me.CreateGraphics()
    
            Dim sz As Size = Me.Size
            bmp = New Bitmap(sz.Width, sz.Height, g)
            Dim gr As Graphics = Graphics.FromImage(bmp)
            gr.CopyFromScreen(Me.Location.X, Me.Location.Y, 0, 0, sz)
    
            Me.PictureBox1.Image = bmp
    GRAZIE !!!!!!!!!!!

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da cucuzzolo
    GRAZIE !!!!!!!!!!!
    Di nulla
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.