การพิมพ์ค่า Datagridview [ซ้ำ]
Sep 09 2020
เมื่อฉันพิมพ์สิ่งนี้จาก Datagrid ดูค่าต่างๆจะอยู่ด้านบนของกันและกันให้ป้อนคำอธิบายภาพที่นี่
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
คำตอบ
jmcilhinney Sep 09 2020 at 21:19
แน่นอนพวกเขาเป็น คุณกำลังใช้พิกัดเดียวกันสำหรับทุกแถว หากคุณคาดว่าจะพิมพ์แต่ละแถวด้านล่างแถวก่อนหน้าคุณต้องระบุ Y ที่มากกว่าแถวก่อนหน้า โดยทั่วไปคุณจะต้องสร้างพื้นฐานสำหรับเร็กคอร์ดแรกและความสูงของเร็กคอร์ดจากนั้นใช้พิกัด Y สำหรับแต่ละแถวที่เป็นค่าพื้นฐานบวกดัชนีแถวคูณด้วยความสูงเช่น
Dim y0 = 10
Dim rowHeight = 50
For rowIndex = 0 To rowCount - 1
Dim y = y0 + rowIndex * rowHeight
'Print at y.
Next