سلام
من به وسیله DrawLine یک سری خطوط در فرمم کشیدم ( یک فاکتور کشیدم) و یکسری label هم وسط این خط ها گزاشتم و می خوام از اون پرینت بگیرم.
1- این راه , راه منطقی و معمولی هست یا نه؟
2- اگه هست چه شکلی از اون پرینت بگیرم؟
سلام
من به وسیله DrawLine یک سری خطوط در فرمم کشیدم ( یک فاکتور کشیدم) و یکسری label هم وسط این خط ها گزاشتم و می خوام از اون پرینت بگیرم.
1- این راه , راه منطقی و معمولی هست یا نه؟
2- اگه هست چه شکلی از اون پرینت بگیرم؟
راستی من وقتی کلیدهایی مثل alt,ctrl,start ...... میزنم اشکال گرافیکی که رسم شده پاک می شه ؟؟؟؟؟؟؟؟!!!!!!
Last edited by r.gh45; 10-08-2008 at 16:50.
سلام
شما میتوانید به کمک کلاسس PrintDocument با همان دستوراتی که با +GDI بر روی فرمتان رسم انجام میدهید، مستقیماً بر روی device پرنتر رسم انجام دهید.من به وسیله DrawLine یک سری خطوط در فرمم کشیدم ( یک فاکتور کشیدم) و یکسری label هم وسط این خط ها گزاشتم و می خوام از اون پرینت بگیرم.
لازم به توضیح است که استفاده از کلاسس 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 بد نیست
اشکال را در چه رویدادی رسم میکنید؟ باید از رویداد Paint استفاده کنید، اگر هم طرح اشکال زیاد و رسم آنها سنگین و پر هزینه باشد، میتوانید DoubleBuffer را فعال کنید.راستی من وقتی کلیدهایی مثل alt,ctrl,start ...... میزنم اشکال گرافیکی که رسم شده پاک می شه ؟؟؟؟؟؟؟؟!!!!!!
سلام
من کد زیر رو نوشتم ولی فقط یک صفحه خالی برام پرینت می گیره؟
اگه لطف کنید و ایرادامو بگید؟
می بخشید میشه از یک قسمت خاص از فرم مثلا از نقطه 100و100 تا نقطه 300و300 پرینت گرفتکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!jGraph = this.CreateGraphics();
اینطوری شما روی فرم ترسیم میکنید، چگونه میخواهید دستور CreateGraphics را اجرا کنید و پرده رسم فرم را بگیرید، ولی روی پرینتر ترسیم شود؟؟؟؟
شما باید از مقادیر ارسال شده در پارامتر e ورودی استفاده کنید. مثل e.Graphics
میشود یک کارهایی کرد، حتی خود مایکروسافت هم سرش درد گرفته از این سوالات و یک بسته الحاقی که شامل پرینت از فرم است داده.می بخشید میشه از یک قسمت خاص از فرم مثلا از نقطه 100و100 تا نقطه 300و300 پرینت گرفت
ولی عمل فوق جالب توجه نیست، چون
1- اصولی نیست میبخشید ولی یک نوع ماست مالی برنامه نویسی است!
2- dpi مانیتور 72 یا 96 در حالی که یک پرینت با کیفیت باید 300dpi باشد.
مرسی h2 جان از جوابهای سریع عالی و مفیدت مچکرم.خدا تورو برای این فرم و ما نگه داره انشاا....
امیدوارم سر شما مثل برو و بچ ماکروسافت درد نگیره از اینهمه سوال.
موفق و سربلند باشی
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)