الله يجزيك الخير فهمنا الموضوع 100% الحمد لله بفضلك بس معقول ما عرفوا يعملوا حل لهالموضوع ابسط من هيك مع أنو موضوع اضافة صفحات جديدة موضوع بسيط بس غريب كوده ليش فيه كل هالتعقيد.
Homework : int x = -1; private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { Font f = new Font("Arial", 16, FontStyle.Bold); int y = 20; x++; for (; x < textBox1.Lines.Count(); x++) { e.Graphics.DrawString(textBox1.Lines[x], f, Brushes.Black, 20, y); y += f.Height; if (y >= e.PageBounds.Height - 150) { e.HasMorePages = true; break; } } } ربنا يجازيك خير على الشرح الرائع .. للعلم المثال مش محتاج تفصل ال more page ف الاول
طيب مش هو line بداخل الfor بتزيد ف كل مره بواحد ليه يعطينى طباعه ما لا نهايه وخصوصا انى محدده انه يكون اقل من عدد اسطر الصفحه واضطر انى انقل line =0 بره ال meathod
الله يجازيك كل خير ، انا بس عندي مشكلة لما بعمل الكود كدة البرينت بيشتغل مرة واحدة ، تاني مرة بيجيب صفحات فاضية ، عشان يشتغل تاني لازم نقفل البرنامج ونفتحه ،لو حد عنده حل يفيدنا
many thanks for your tutorial.I have one problem: this code works only at screen, and not with a printer, I get only white paper...I don´t know why; can any one help me ??
دلوقتي فيه مشكلتين : 1 - الكود شغال على الشاشة فقط ، لكن لما تدي أمر الطباعة بيعطي صفحات فاضية. 2- لما بتعمل بريفيو للطباعة وتلغيها وترجع تعمل بريفيو كمان بيظهر على الشاشة صفحات بيضاء ايضا . ارجو الرد من السادة الزملاء ....وشكرا
وعليكم السلام ورحمة الله وبركاته اخي عمر انا بحل لك المشكلة الثانية كالآتي : تشيل تعريف Int currentHight =0; Int line=-1; شيلهم الى منطقة الكلاس بحيث يكونوا الاثنين معروفين لدوال الصفحة كاملة. ثم تروح الى احدث printprevieedialog و وتدخل على حدث FormClosed وتكتب فيه هذه line =-1; currentHight=0; لحتى يتم تصفير العدادات الذي بتحسب عدد الصفحات والاسطر لتقوم بالحساب الصحيح اذا اعيد نقر زر الطباعة مرة ثانية. ايضا لا انس تكتب CurrentHight =0; داخل كود printDocument2 بنفس المكان الذي كان به من قبل.
عمل اكثر من رائع جازاك الله كل خير انت و الاستاذ الذي دعم الكرس ولي خلانا ندرس كورس مدفوع مجانا.
jazak allah khair
بارك الله فيك وجزاك الله خيرا وجعله الله جل وعلا في ميزان حسناتك والشكر موصول للاستاذ الفاضل احمد محمد باريان على الدعم الكبير
بارك الله فيك استاذ
الله يجازيك على كل حرف يا استاذي الفاضل
بارك الله فيك
الله يجزيك الخير ...
احسن من هيك مافي ...
ما شاء الله...
🌹🌹🌹
الله يجزيك الخير فهمنا الموضوع 100% الحمد لله بفضلك بس معقول ما عرفوا يعملوا حل لهالموضوع ابسط من هيك مع أنو موضوع اضافة صفحات جديدة موضوع بسيط بس غريب كوده ليش فيه كل هالتعقيد.
شكرا وجزاك الله خير الجزاء
جزاك الله حيرا
Homework :
int x = -1;
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Font f = new Font("Arial", 16, FontStyle.Bold);
int y = 20;
x++;
for (; x < textBox1.Lines.Count(); x++)
{
e.Graphics.DrawString(textBox1.Lines[x], f, Brushes.Black, 20, y);
y += f.Height;
if (y >= e.PageBounds.Height - 150)
{
e.HasMorePages = true;
break;
}
}
}
ربنا يجازيك خير على الشرح الرائع ..
للعلم المثال مش محتاج تفصل ال more page ف الاول
The best forever
tnx man that helped!
سلام يا استاذ احمد بس عندي سؤال كيف اعمل فورمه جاهزه يكون امر الطباعه ينقل بيانات combox الى داخل الفورم ثم يقوم بطباعتها هل هاذا ممكن
طيب مش هو line بداخل الfor بتزيد ف كل مره بواحد ليه يعطينى طباعه ما لا نهايه وخصوصا انى محدده انه يكون اقل من عدد اسطر الصفحه
واضطر انى انقل line =0 بره ال meathod
الله يجازيك كل خير ، انا بس عندي مشكلة لما بعمل الكود كدة البرينت بيشتغل مرة واحدة ، تاني مرة بيجيب صفحات فاضية ، عشان يشتغل تاني لازم نقفل البرنامج ونفتحه ،لو حد عنده حل يفيدنا
بدل printpreviewDialog ب printDialog وسوف يعمل
السلام عليكم عندي مشكله بسيطة عند الطباعة طباعه متعدده للصفحات بتزيد صفحه فارغه زيادة ممكن حل انا بطبع بيانات منdatagridview from c#
استاذ احمد ازاي نقدر نملي النصف الاخر في نفس الصفحه ؟؟؟؟؟؟؟؟؟؟
عملت الترين على قدى كده , حطيته عشان الى حاول يعملو بس معرفش
int line = -1; // عشان مشكله تكرار اخر سطر فى الصفحه الى بعديه
int image = -1; // عشان مشكله تكرار اخر صوره فى الصفحه الى بعديها
private void printDocument3_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.HasMorePages = false;
Font f = new Font("arial", 20, FontStyle.Bold);
int Y_Height = 0;
line++; // - مابتقبلش for بنزود ب 1 عشان ال
for (;line= e.PageBounds.Height - 170)
{
e.HasMorePages = true;
break;
}
}
Image img1 = Properties.Resources._2;
Image img2 = Properties.Resources._4;
Image img3 = Properties.Resources._5;
Image img4 = Properties.Resources._6;
Image img5 = Properties.Resources._7;
Image[] allimg = { img1, img2, img3, img4, img5 };
int Y_Heigh2 = 0;
int imageHeigh = 100;
image++; // - مابتقبلش for بنزود ب 1 عشان ال
for (; image < allimg.Length; image += 1)
{
//MessageBox.Show(image + " image after loop");
e.Graphics.DrawImage(allimg[image], 20, Y_Heigh2 + 50, 100,imageHeigh);
Y_Heigh2 += imageHeigh + 250;
if (Y_Heigh2 >= e.PageBounds.Height - 170)
{
e.HasMorePages = true;
break;
}
}
}
private void btnPPMP_Click(object sender, EventArgs e)
{
if (printPreviewDialog2.ShowDialog() == DialogResult.OK)
{
printDocument3.Print();
}
}
تمام ، انا عملته زيك لكن بيعمل previewمرة واحدة ، تاني مرة بيطبع صفحة فارغة ، مش عارف اوصل للسبب !!!!!
يطلعي غلط
Index out of range
في كود متاع
e.Grephics.Drawstring(txt.lines[line],f,Brushes.Red,20,currentHeight+50);
many thanks for your tutorial.I have one problem: this code works only at screen, and not with a printer, I get only white paper...I don´t know why; can any one help me ??
type printDialog instead of printPreviewDialog
@@WebTrend so many thanks to you,your code runs perfectly
دلوقتي فيه مشكلتين :
1 - الكود شغال على الشاشة فقط ، لكن لما تدي أمر الطباعة بيعطي صفحات فاضية.
2- لما بتعمل بريفيو للطباعة وتلغيها وترجع تعمل بريفيو كمان بيظهر على الشاشة صفحات بيضاء ايضا .
ارجو الرد من السادة الزملاء ....وشكرا
وعليكم السلام ورحمة الله وبركاته اخي عمر انا بحل لك المشكلة الثانية كالآتي :
تشيل تعريف
Int currentHight =0;
Int line=-1;
شيلهم الى منطقة الكلاس بحيث يكونوا الاثنين معروفين لدوال الصفحة كاملة.
ثم تروح الى احدث printprevieedialog و
وتدخل على حدث
FormClosed
وتكتب فيه هذه
line =-1;
currentHight=0;
لحتى يتم تصفير العدادات الذي بتحسب عدد الصفحات والاسطر لتقوم بالحساب الصحيح اذا اعيد نقر زر الطباعة مرة ثانية.
ايضا لا انس تكتب
CurrentHight =0;
داخل كود printDocument2
بنفس المكان الذي كان به من قبل.
-_- ni en español ni en ingles, tragarme estas explicaciones :/
The explanation is oriented only for Arabic People...
الله يجازيك على كل حرف يا استاذي الفاضل