ciao a tutti ho un grossissimo problema... come posso fare a stampare l'intero form di vb.net tramite l0oggetto printform senza che però nn mi tagli le parti nascoste furi dalla schermata del monitor??? grz mille in anticipo
ciao a tutti ho un grossissimo problema... come posso fare a stampare l'intero form di vb.net tramite l0oggetto printform senza che però nn mi tagli le parti nascoste furi dalla schermata del monitor??? grz mille in anticipo
A parte le abbreviazioni tipo SMS io non ho capito la domanda.
Sbagliare è umano, perseverare è diabolico.
devo poter stampare l'intero form usando il comando printform, senza che però non mi vengano stampate le parti che nascoste, perchè in pratica il controllo printform non fa altro che stampare solo le parti che si vedono nel monitor... se un pezzo non si dovesse vedere non lo stampa. Come posso fare a stampare tutto il form per intero? o magari se non c'è alcun modo per fare ciò col comando prontform, non c'è nessun altro modo per stampare tutto il contenuto del form cosi come si trova???
Scusa ma cosa sono le parti nascoste?
Sbagliare è umano, perseverare è diabolico.
le parti nascoste nel senso che se un form è troppo gande non viene visualizzato tutto... e quindi ci sn delle parti nascoste, non visibili... e quelle parti non vengono stampate dal printform.
Ma sei sicuro che non sia un problema di "carta", cioè che le dimensioni della finestra siano + grandi di quelle del foglio utilizzato per la stampa?
sicurissimo perchè mi resta un bel po di spazio bianco nel foglio...
Il printForm stampa il Form indipendentemente dalla posizione sullo schermo, quindi anche se sposti la Form fuori dallo schermo verrà stampato correttamente. Se non viente stampato tutto il Form significa solo che le dimensioni della Form sono maggiori del formato della carta che utilizzi.
Per il formato A4 ovvero 11,69" x 8,27" la massima risoluzione stampabile sarebbe di 1122 x 793 pixel.
In tal caso utilizza il componente PrintDocument e:
In cui lo 0,5 indica il 50% delle dimensioni originali.codice:Public Class Form1 Dim memoryImage As Bitmap Dim bmp2 As Bitmap Private Sub CaptureScreen() Dim myGraphics As Graphics = Me.CreateGraphics() Dim s As Size = Me.Size memoryImage = New Bitmap(s.Width, s.Height, myGraphics) Dim memoryGraphics As Graphics = Graphics.FromImage(memoryImage) memoryGraphics.CopyFromScreen(Me.Location.X, Me.Location.Y, 0, 0, s) bmp2 = New Bitmap( _ memoryImage.Width * 0.5, _ memoryImage.Height * 0.5, _ Imaging.PixelFormat.Format24bppRgb) Dim g As Graphics = Graphics.FromImage(bmp2) g.InterpolationMode = _ Drawing.Drawing2D.InterpolationMode.HighQualityBicubic g.DrawImage(memoryImage, 0, 0, bmp2.Width, bmp2.Height) g.Dispose() End Sub Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage e.Graphics.DrawImage(bmp2, 0, 0) End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click CaptureScreen() PrintDialog1.ShowDialog() PrintDocument1.PrinterSettings = PrintDialog1.PrinterSettings PrintDocument1.Print() End Sub End Class
![]()
Sbagliare è umano, perseverare è diabolico.
Come suggerito da Pirelli72, calcola quindi le dimensioni (in pixel) del tuo form e vedi se rientrano nel range 1122x793; in caso contrario Pirelli72 ha già provveduto a postarti la soluzione..
Ciao![]()
la soluzione di pirelli72 non fa altro che stamparmi una striscia lunga quanto tutto ilfoglio e larga 7cm di solo colore nero e poi comincia a stampare il form tagliato sia di sopra che di sotto.
e per la cronaca il mio form è 1070 x 764.