128 messaggi dal 01 novembre 2012
Buongiorno,

in un Form ho inserito un TabControl con delle pagine.

in una pagina ho inserito un DataGridView che regolarmente ho l'anteprima di stampa e la stampa del DGV con il seguente codice:
Anteprima di Stampa:

PrintDGV.Print_DataGridView(DataGridView);

Stampa del DGV:

PrintDialog PrintDataGridViewDocumentPrintDialog = new PrintDialog();
            PrintDataGridViewDocumentPrintDialog.Document = Print_Document;
            PrintDataGridViewDocumentPrintDialog.UseEXDialog = true;
            DialogResult PrintDataGridViewDocumentDialogResult = PrintDataGridViewDocumentPrintDialog.ShowDialog();
if (PrintDataGridViewDocumentDialogResult == DialogResult.OK)
   {
      Print_Document.DocumentName = "How TorPrint DataGridView";
      Print_Document.Print();
   }

ad un'altra pagina ho inserito solo alcune Label con rispettive TextBox ed il problema che riscontro è che non riesco ad effettuare sia l'anteprima e la stampa.

Gradirei gentilmente un suggerimento e fiducioso, saluto.
Domenico.
308 messaggi dal 08 gennaio 2011
Ciao Domenico,
bisogna prestare una certa attenzione su come si pongono le domande in un forum.
Come l'hai posta tu, sembrerebbe che se in una pagina di un TabControl c'è un DatagridView si ottiene la stampa senza problemi.
Ma invece ovviamente non è così.
Nel tuo codice tu usi qualcosa di esterno che permette di stampare una DataGridView e probabilmente i dati al suo interno.
Non ti nascondo che mi sono preso la briga di cercare su Bing immettendo il testo che nel tuo codice hai assegnato al nome del documento cioè "How TorPrint DataGridView" ottenendo tra i risultati un sito che faceva proprio questo :stampare una DGV e i suoi dati.

Se vuoi capire come funziona la stampa in Windows Forms ti consiglio di leggere https://docs.microsoft.com/it-it/dotnet/api/system.drawing.printing.printdocument?view=dotnet-plat-ext-6.0

Come dritta ti posso suggerire che finchè usi oggetti PrintDocument quello che stampi sono sempre immagini o meglio ancora oggetti Graphics. Con ciò voglio dire che non esiste qualcosa che ti permette di stampare direttamente.

Di seguito un piccolo esempio che stampa ciò che si immette in una TextBox, quando si clicca sul Button, sulla stampante predefinita. Devi creare un Form con dentro una TextBox, un Button e un PrintDocument. Per ottenere il gestore dell'evento PrintPage devi fare doppio click sull'icona del PrintDocument del Form per poterci aggiungere dentro la riga che disegna sul Graphics.

 public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            e.Graphics.DrawString(textBox1.Text, new Font("Arial", 15), Brushes.Red, new Point(0, 0));    
        }
              

        private void button1_Click(object sender, EventArgs e)
        {
            printDocument1.Print();
        }
               
    }

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.