วันพฤหัสบดีที่ ๑๐ กันยายน พ.ศ. ๒๕๕๒

VB.NET จัด format ตัวอักษรใน PrintDocument

ช่วง 1-2 ปีมานี้ จะมีน้องๆนักศึกษาเข้ามาถามเรื่อง PrintDocument ใน VB.NET หลายคนทีเดียวครับ สังเกตุอย่างหนึ่งคือการเขียนใช้สไตล์เดียวกัน ดังนั้นเลยเดาว่าคงใช้หนังสือภาษาไทยเล่มเดียวกันในการศึกษา คำถามหนึ่งที่พบบ่อยคืออยากจัดตัวอักษรชิดขวาหรือกึ่งกลางทำอย่างไรดี

ในโค้ดที่แนบมาให้ดู จะมี AnyString Sub ในการวาดตัวอักษรลงบน PrintDocument ครับ ซึ่ง Sub นี้มันจะวาดตัวอักษรชิดซ้ายตลอด ดังนั้นผมเลยเสนอให้สร้าง Sub ที่สามารถกำหนด StringFormat ได้ว่าจะให้ชิดซ้าย ชิดขวา หรือกึ่งกลาง


Public Sub FormatString(ByVal g As Graphics, ByVal printString As String, ByVal xPos As Integer, ByVal yPos As Integer, ByVal align As StringAlignment)

Dim f As New StringFormat
f.Alignment = align
g.DrawString(printString, useFont, Brushes.Black, xPos, yPos, f)

End Sub


สังเกตุว่าจะมีการใช้ตัวแปรชื่อ useFont ด้วยครับ ซึ่ง useFont ก็ต้องถูกประกาศในระดับ Page และกำหนด Font ที่ต้องการใช้วาด PrintDocument ที่ต้องการ

เวลาเรียกใช้ให้จัดชิดขวาก็

FormatString(e.Graphics, "test123", 100, currentYPosition, StringAlignment.Far)

ถ้าต้องการให้อยู่ตรงกลางก็

FormatString(e.Graphics, "test123", 100, currentYPosition, StringAlignment.Center)

ไม่มีความคิดเห็น: