مشاهده نسخه کامل
: پرینت
سلام
من به وسیله DrawLine یک سری خطوط در فرمم کشیدم ( یک فاکتور کشیدم) و یکسری label هم وسط این خط ها گزاشتم و می خوام از اون پرینت بگیرم.
1- این راه , راه منطقی و معمولی هست یا نه؟
2- اگه هست چه شکلی از اون پرینت بگیرم؟
راستی من وقتی کلیدهایی مثل alt,ctrl,start ...... میزنم اشکال گرافیکی که رسم شده پاک می شه ؟؟؟؟؟؟؟؟!!!!!!
سلام
من به وسیله DrawLine یک سری خطوط در فرمم کشیدم ( یک فاکتور کشیدم) و یکسری label هم وسط این خط ها گزاشتم و می خوام از اون پرینت بگیرم.
شما میتوانید به کمک کلاسس PrintDocument با همان دستوراتی که با +GDI بر روی فرمتان رسم انجام میدهید، مستقیماً بر روی device پرنتر رسم انجام دهید.
لازم به توضیح است که استفاده از کلاسس PrintDocument شاید کمی سخت و x و y دار باشد، ولی در زمان اجرا بسیار بسیار سریعتر از نمونه های MsReport و Crystal و... عمل میکند، چون بی واسطه ترین و مستقیم راه به پرینتر در دات نت است.
forum.p30world.com/showthread.php?t=247655
forum.p30world.com/showthread.php?t=137511
... این راه , راه منطقی و معمولی هست یا نه؟
زمان نمایش را میگویید یا پرینت؟
در زمان نمایش در فرم های برنامه، معمولاً برنامه نویسان خود را درگیر ترسیمات نمیکنند و از DataGrid یا انواع کنترلرهای آماده استفاده میکنند.
ولی اگر صلاح دیدی که ترسیم را مستقیم با PrintDocument انجام دهید، شاید نمایش آن هم به همین روش بد نباشد.
یعنی ان را مثل یک Preview از کاغذ واقعی بعد از چاپ نشان دهید، به عنوان Print Preview، حتی میتوانید از کنترلر PrintPreviewControl استفاده کنید و با یک کد و یک وراثت از PrintDocument هم در برنامه فاکتور را Preview کنید و هم برای عمل چاپ کد جدید ننویسید.
در زمان چاپ هم برای پشتیبانی راحت حالات پیچیده و کد نویسی سریع و امکان تبدیل ساده تر با توجه به نیازهای جدید، برنامه نویسان ابزار آماده و بصری مثل کریستال را ترجیح میدهند، چون آنها را در گیر دستورات زیاد و x و y های بسیار در +GDI نمیکند.
ولی اگر نمایه چاپی فاکتور ساده باشد، پرینت مستقیم با دستورات +GDI و به وسیله کلاسس PrintDocument بد نیست
راستی من وقتی کلیدهایی مثل alt,ctrl,start ...... میزنم اشکال گرافیکی که رسم شده پاک می شه ؟؟؟؟؟؟؟؟!!!!!!
اشکال را در چه رویدادی رسم میکنید؟ باید از رویداد Paint استفاده کنید، اگر هم طرح اشکال زیاد و رسم آنها سنگین و پر هزینه باشد، میتوانید DoubleBuffer را فعال کنید.
سلام
من کد زیر رو نوشتم ولی فقط یک صفحه خالی برام پرینت می گیره؟
اگه لطف کنید و ایرادامو بگید؟
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
می بخشید میشه از یک قسمت خاص از فرم مثلا از نقطه 100و100 تا نقطه 300و300 پرینت گرفت
سلام
jGraph = this.CreateGraphics();
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
اینطوری شما روی فرم ترسیم میکنید، چگونه میخواهید دستور CreateGraphics را اجرا کنید و پرده رسم فرم را بگیرید، ولی روی پرینتر ترسیم شود؟؟؟؟
شما باید از مقادیر ارسال شده در پارامتر e ورودی استفاده کنید. مثل e.Graphics
می بخشید میشه از یک قسمت خاص از فرم مثلا از نقطه 100و100 تا نقطه 300و300 پرینت گرفت
میشود یک کارهایی کرد، حتی خود مایکروسافت هم سرش درد گرفته از این سوالات و یک بسته الحاقی که شامل پرینت از فرم است داده.
ولی عمل فوق جالب توجه نیست، چون
1- اصولی نیست میبخشید ولی یک نوع ماست مالی برنامه نویسی است!
2- dpi مانیتور 72 یا 96 در حالی که یک پرینت با کیفیت باید 300dpi باشد.
مرسی h2 جان از جوابهای سریع عالی و مفیدت مچکرم.خدا تورو برای این فرم و ما نگه داره انشاا....
امیدوارم سر شما مثل برو و بچ ماکروسافت درد نگیره از اینهمه سوال.
موفق و سربلند باشی
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.