Ok, ho adesso le idee un po' più chiare ...
Il Form è così strutturato (metto sotto URL): click.
Alla pressione del Button1 viene catturata l'area dello schermo relativa alla PictureBox che come sfondo ha quel punto interrogativo per poi essere salvata su disco. In teoria però
Riesco a farlo, ma il problema sta nella "parte di schermo" da catturare. Mi spiego meglio. Uso questo codice che alla pressione del Button1 cattura una porzione di schermo e la mostra in una PictureBox:
codice:
Private Function cattura() As System.Drawing.Bitmap
' Creo un oggetto bitmap di dimensioni uguali allo schermo
Dim b As Bitmap = New Bitmap(400, 150)
' Creo l'oggetto graphics
Dim g As Graphics = Graphics.FromImage(b)
' Definisco un oggetto Size con le dimensioni dello schermo
Dim sz As Size = New Size(400, 150)
' Catturo la parte di schermo definita in basso e la mostro in una PictureBox
Dim x As New Point(3, 80)
x = x + Me.Location
g.CopyFromScreen(x, New Point(0, 0), New Size(400, 150))
' Restituisco l'oggetto bitmap
Return b
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
PictureBox2.Image = cattura()
End Sub
In questa parte di codice:
codice:
Dim x As New Point(3, 80)
x = x + Me.Location
tento invano di sommare quattro punti: la posizione attuale del Form più la posizione, all'interno del Form (correggetemi se sbaglio: così facendo si otterrà la stessa immagine ad ogni risoluzione), della parte da catturare. In teoria, dovrebbe risolvere la questione...
Infatti, risolta
Essendo la PictureBox all'interno di un Panel, mi veniva data la posizione di questa stessa in relazione al Panel e non a tutto il Form
Grazie comunque!