السلام عليكم ورحمة الله وبركاته
قمت بكتابة برنامج لطباعة محتوى textBox باستخدام الطابعة وقد عمل البرنامج بشكل ممتاز
وكان الكود المستخدم هو التالي:
عند النقر على زر طباعة يتم تنفيذ التالي:
try
{
ThePrintDocument.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(PrintPage);
myStringReader = new System.IO.StringReader(printertext);
ThePrintDocument.Print();
}
catch( System.Exception ex)
{
MessageBox.Show(ex.ToString());protected void PrintPage (object sender, System.Drawing.Printing.PrintPageEventArgs ev)
{
float linesPerPage = 0;
float yPosition = 0;
int count = 0;
float leftMargin = ev.MarginBounds.Left;
float topMargin = ev.MarginBounds.Top;
string line = null;
Font printFont = textBox1.Font;
SolidBrush myBrush = new SolidBrush(Color.Black);
linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics);
while(count < linesPerPage && ((line=myStringReader.ReadLine()) != null))
{
yPosition = topMargin + (count * printFont.GetHeight(ev.Graphics));
ev.Graphics.DrawString(line, printFont, myBrush, leftMargin, yPosition, new StringFormat());
count++;
}
if (line != null)
{
ev.HasMorePages = true;
}
else
{
ev.HasMorePages = false;
}
myBrush.Dispose();
}ولكن المشكلة التي واجهتها هي عند استخدام هذا الكود للطباعة عن طريق الشبكة حيث كتبت برنامج يقوم فيه المستخدم بكتابة نص وإرساله وعند استلام الطرف الآخر للنص يقوم البرنامج بطباعته فوريا ويظهر نسخة عن الرسالة في مربع نص أيضا. ما حصل معي هو أنني أستلم الرسالة وتظهر في مربع النص وتظهر نافذة الطابعة وهي تستعد للطباعة ولكن لا تتحول حالة الطابعة غلى طباعة حتى يتم إغلاق البرنامج فما المشكلة في رأيكم ؟؟؟؟؟