Impression de la valeur Datagridview [duplicate]
Sep 09 2020
lorsque j'imprime ceci à partir de Datagridview, les valeurs se superposent, entrez la description de l'image ici
Dim rowCount As Integer = DataGridView6.Rows.Count
For i = 0 To rowCount - 1
e.Graphics.DrawString("PARTICULARS", ReportBodyFont, Brushes.Black, 70, 300)
e.Graphics.DrawString("QTY", ReportBodyFont, Brushes.Black, 400, 300)
e.Graphics.DrawString("AMOUNT", ReportBodyFont, Brushes.Black, 600, 300)
e.Graphics.DrawString("----------------------------------------------------------", ReportFont, Brushes.Black, 50, 310)
''
e.Graphics.DrawString(DataGridView6.Rows(i).Cells(1).Value, ReportBodyFont, Brushes.Black, 50, 320)
e.Graphics.DrawString(DataGridView6.Rows(i).Cells(3).Value, ReportBodyFont, Brushes.Blue, 400, 320)
e.Graphics.DrawString(DataGridView6.Rows(i).Cells(2).Value, ReportBodyFont, Brushes.Black, 600, 320)
Next
Réponses
jmcilhinney Sep 09 2020 at 21:19
Bien sûr qu'ils le sont. Vous utilisez exactement les mêmes coordonnées pour chaque ligne. Si vous prévoyez que chaque ligne sera imprimée sous la précédente, vous devez spécifier un Y supérieur à la précédente. De manière générale, vous établirez une ligne de base pour le premier enregistrement et la hauteur d'un enregistrement, puis utilisez une coordonnée Y pour chaque ligne qui est cette ligne de base plus l'index de ligne multiplié par la hauteur, par exemple
Dim y0 = 10
Dim rowHeight = 50
For rowIndex = 0 To rowCount - 1
Dim y = y0 + rowIndex * rowHeight
'Print at y.
Next