Bonjour,
C'est la conversion d'une classe C# DataGridViewPrinter, voir
http://www.codeproject.com/csharp/datagridviewprinter.asp
En VB .NET, il ya un pb de gestion de l'impression d'une datagridview. La seule DLL disponible étant de rustemsoft étant payante.
DataGridViewPrinter : est une classe pour imprimer les datagridview. Un example est fourni avec.
Bonne programmation à tous,
Riadh.
Source / Exemple :
voir le fichier zip
je vous remerci une otre fois
Si l'imprimante choisie n'est pas la bonne au final, c'est que l'objet MyPrintDocument défini dans la la Form1 du code en exemple n'est pas correctement initialisé dans ton utilisation. Pour s'en rendre compte, il suffit de faire un Point d'Arrêt avant l'impression via l'appel MyPrintDocument.Print() et de vérifier la valeur MyPrinterDocument.PrinterSettings.PrinterName, si elle ne correspond pas à la sélection, c'est qu'il y a un souci en amont. Il ne reste donc qu'a remonté jusqu'à la perte ou la non initialisation du nom de l'imprimante, a priori après If MyPrintDialog.ShowDialog() <> DialogResult.OK Then dans le code de la fonction SetupThePrinting()
J'ai fait la même erreur en intégrant le code et en voulant le modifier pour lui ajouter du fonctionnel comme la non prise en compte des colonnes invisibles (à faire dans SetupThePrinting() dans la boucle de création de la liste des colonnes à cocher : If c.Visible = True Then AvailableColumns.Add(c.HeaderText) )
Bref, normalement c'est initialisé dans la fonction SetupThePrinting()
Personnellement, j'ai réutilisé le code en créant l'objet PrintDocument directement dans la fenêtre PrintOptions et en ajoutant la fenêtre comme un élément de la Classe. Je considère que la fenêtre fait partie du code utile (!...), ainsi j'initialise directement l'objet avec la fenêtre de dialogue système :
PrintOptions.MyPrintDocument.PrinterSettings = MyPrintDialog.PrinterSettings
Donc pas de souci de ne pas pointer sur la mauvaise imprimante.
A noter que j'ai testé avec Visual Basic 2010 Express
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.