none
Imprimer un datagridview RRS feed

  • Question

  • bonsoir,

    voici mon code pour imprimer un datagidview :

    derrière  l'objet pintDocument,j'ai tapé ce code:

      Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
            Dim myPaintArgs As New PaintEventArgs(e.Graphics, New Rectangle(New Point(0, 0), Me.Size))
            Me.InvokePaint(DataGridViewAssure, myPaintArgs)
        End Sub

    et derrière un bouton de commande j'ai tapé ce code :

      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Me.PrintDialog1.Document = Me.PrintDocument1
            Me.PageSetupDialog1.Document = Me.PrintDocument1
            If Me.PrintDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then Me.PrintDocument1.Print()
        End Sub

    je pensais qu'il allait m'imprimerle datagidview mais rien.

    Que dois je faire ,Aidez moi ?

    cordialement

     

    lundi 28 juin 2010 16:44

Réponses

Toutes les réponses

  • Bonjour,

     

    Pour imprimer un objet DataGridView, vous avez deux possibilités : soit utiliser PrintPage et PrintDocument et ajouter manuellement les informations de DataGridView que vous voulez imprimer, soit utiliser le clipboard de DataGridView et copier le contenu dans un document Excel que vous allez imprimer ensuite.

     

    Je vous conseille aussi de lire ces articles qui traitent le sujet :

    http://www.codeproject.com/KB/grid/PrintDataGridView.aspx

    http://www.codeproject.com/KB/printing/GridPrintPreviewSolution.aspx

     

    Cordialement,

    Alex

    • Marqué comme réponse Alex Petrescu vendredi 2 juillet 2010 10:31
    mercredi 30 juin 2010 09:57
  • Private Sub Aperçu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            PrintDocument1.DefaultPageSettings.Landscape = True' orientation paysage
            PrintPreviewDialog1.Document = PrintDocument1
            PrintPreviewDialog1.ShowDialog()
    End Sub

    Private Sub imprime_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles imprime.Click
            PrintDocument1.DefaultPageSettings.Landscape = True 'paysage
            PrintDocument1.Print()
        End Sub

    Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
           'nombre de lignes 
           Dim nblignes As Integer = CInt(PrintDocument1.DefaultPageSettings.PrintableArea.Height.ToString / DataGridView1.Rows(1).Height.ToString)
            'calcule la hauteur de la grille
            DataGridView1.Height = (DataGridView1.Rows(1).Height * nblignes)
            Dim bm As New Bitmap(Me.DataGridView1.Width, Me.DataGridView1.Height)
            DataGridView1.DrawToBitmap(bm, New Rectangle(e.PageSettings.HardMarginX, e.PageSettings.HardMarginY, Me.DataGridView1.Width, Me.DataGridView1.Height))
            e.Graphics.DrawImage(bm, 0, 0, (e.PageBounds.Width - e.PageSettings.HardMarginX), (e.PageBounds.Bottom - e.PageSettings.HardMarginY)) ' ajuste la grille à l'imprimante
        End Sub

    Private Sub PrintDocument1_EndPrint(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintEventArgs) Handles PrintDocument1.EndPrint
            MessageBox.Show("fin d'impression")
        End Sub
    samedi 8 février 2014 16:27