- tarik
- عدد المساهمات : 134
تاريخ التسجيل : 08/10/2012
طباعة الفورم فى فيجوال بيسك دوت نت
الأحد أكتوبر 14, 2012 5:11 pm
بسم الله الرحمن الرحيم
هناك طرق كثيرة لطباعة الفورم واذا قمت بالبحث ستجد الكثير اسرع هذه الطرق هو ماتم مناقشته في منتدى ميكروسوفت وكانت الطريقة هي انه يتم اخذ صورة عن الفورم بطريقة Capture ومن ثم طباعتها على اساس انها صورة
بصراحة انا لم اجرب هذا الكود لكن وددت ان اضعه لك عله يفيدك وتتمكن من استخدامه
المتطلبات الرئيسية :-
1- كائن PrintDocument ويكون اسمه PrintDocument1
2- يكون زر الطباعة اسمه PrintButton
بالتوفيق
هناك طرق كثيرة لطباعة الفورم واذا قمت بالبحث ستجد الكثير اسرع هذه الطرق هو ماتم مناقشته في منتدى ميكروسوفت وكانت الطريقة هي انه يتم اخذ صورة عن الفورم بطريقة Capture ومن ثم طباعتها على اساس انها صورة
بصراحة انا لم اجرب هذا الكود لكن وددت ان اضعه لك عله يفيدك وتتمكن من استخدامه
المتطلبات الرئيسية :-
1- كائن PrintDocument ويكون اسمه PrintDocument1
2- يكون زر الطباعة اسمه PrintButton
- الكود:
Private Declare Function BitBlt Lib "gdi32.dll" Alias "BitBlt" (ByVal _
hdcDest As IntPtr, ByVal nXDest As Integer, ByVal nYDest As _
Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal _
hdcSrc As IntPtr, ByVal nXSrc As Integer, ByVal nYSrc As Integer, _
ByVal dwRop As System.Int32) As Long
Dim memoryImage As Bitmap
Private Sub CaptureScreen()
Dim mygraphics As Graphics = Me.CreateGraphics()
Dim s As Size = Me.Size
memoryImage = New Bitmap(s.Width, s.Height, mygraphics)
Dim memoryGraphics As Graphics = Graphics.FromImage(memoryImage)
Dim dc1 As IntPtr = mygraphics.GetHdc
Dim dc2 As IntPtr = memoryGraphics.GetHdc
BitBlt(dc2, 0, 0, Me.ClientRectangle.Width, _
Me.ClientRectangle.Height, dc1, 0, 0, 13369376)
mygraphics.ReleaseHdc(dc1)
memoryGraphics.ReleaseHdc(dc2)
End Sub
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, _
ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles _
PrintDocument1.PrintPage
e.Graphics.DrawImage(memoryImage, 0, 0)
End Sub
Private Sub PrintButton_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles PrintButton.Click
CaptureScreen()
PrintDocument1.Print()
End Sub
بالتوفيق
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى