PDA

View Full Version : تنظیمات پنجره PrintPreview



Sal_64
پنج شنبه 25 مهر 1387, 22:57 عصر
سلام

در زمان پرینت اطلاعات و نمایش پنجره PrintPreview

چطور امکان داره که پنجره فول اسکرین و متن نمایش داده شده 100% ، نمایش داده بشه؟

و با زدن یک کلید از روی کیبرد عمل چاپ و یا بستن پنجره انجام بشه؟؟



با تشکر

rostamkhani
جمعه 26 مهر 1387, 01:12 صبح
سلام
فکر کنم از printPreviewControl استفاده کنین مشکل حل بشه

Sal_64
جمعه 26 مهر 1387, 11:05 صبح
سلام

من از printPreviewDialog استفاده کردم که یه printDocument رو به Document اون نسبت دادم

میشه برای این مورد راه حلی ارائه بدین :خجالت:

با تشکر

smt_414
یک شنبه 28 مهر 1387, 10:21 صبح
سلام
شما برای تنظیمات پنجره PrintPreviewDialog و فول اسکرین کردن اون از کد زیر استفاده کنید

printPreviewDialog1.SetDesktopLocation(0, 0);
printPreviewDialog1.Width = Screen.PrimaryScreen.Bounds.Width;
printPreviewDialog1.Height = Screen.PrimaryScreen.Bounds.Height;

و همچنین برای تغییر سایز متن مورد نظر جهت پرینت از کد

printPreviewDialog1.PrintPreviewControl.Zoom = 1.0;

با تغیییر مقدار 1.0 می تونید Zoom in و Zomm out کنید

موفق باشید

Sal_64
یک شنبه 28 مهر 1387, 11:16 صبح
سلام

تشکر

برای تغییر Zoom برنامه، باید اون دستور رو تو ایونت های مربوط به کیبرد بنویسم درسته

اما اون ایونت ها کار نمی کنن چرا؟؟؟:افسرده:

Sal_64
دوشنبه 29 مهر 1387, 10:52 صبح
سلام

یه چیز رو که متوجه شدم Foucus توی printPreviewDialog زیادی پرسه می زنه اکثرا هم توی NumericUpDownشمارنده Page به سر میبره

با تغییر زیر ایونت KeyDown رو به شکل دلخواه مدیریت می کنم
اما باید مواردی که قبل از این تغییر ، توسط کیبرد قابل انجام بود (کلید های PageUp وPageDown و Right وLeft وUP وDown ) رو هم پیاده سازی کنم


printPreviewDialog1.PrintPreviewControl.TabStop = false;حالا سوال اینه با افزایش Zoom برای رویت تمام صفحه باید با کلیدهای جهتی به اطراف حرکت کرد با کد نویسی چطور میشه این کار رو انجام داد ?

لطفا راهنمایی کنید

با تشکر

Sal_64
دوشنبه 29 مهر 1387, 18:42 عصر
سلام

خوبی اینجا اینه که اگه کسی هم جواب نده ، خود شخص بیش از پیش پیگیره حل سوالش میشه

من قصد دارم که یه ایونت تعریف کنم که ایررور میده
ببینید


printPreviewDialog1.PrintPreviewControl.PreviewKey Down+=new PreviewKeyDownEventHandler(PrintPreviewControl_Pre viewKeyDown);خطا

No overload for 'PrintPreviewControl_PreviewKeyDown' matches delegate 'System.Windows.Forms.PreviewKeyDownEventHandler'

این ایرور برا چیه ؟؟

با تشکر

rostamkhani
شنبه 02 آذر 1387, 20:46 عصر
سلام
این کد کاری که میخواهین رو انجام میده


روش دیگر :
البته فکر کنم توسط کلاس System.Windows.Input.Keyboard در Reference
Reference Assemblies\Microsoft\Framework\v3.0\PresentationCo re.dll
این کاری که برای کیبورد میخواهین انجام بدین رو بشه انجام داد

Sal_64
یک شنبه 03 آذر 1387, 12:16 عصر
سلام

فقط یه چیز میتونم بگم اونهم مرحباست :تشویق:

در جستجوها به کد برنامه شما بر خورده بودم اما نمی دونستم میشه اینجور ازش استفاده کرد :کف:

می تونم یه زحمت دیگه بدم :خجالت:

اگر بخوام چینش و زبون ToolStrip که به بالای فرم اضافه شده رو تغییر بدم چیکار باید کرد
زبون = خاصیت تول تیپ اشیا و خاصیت تکست باتم close


یه مطلب با اضافه کردن اون فرم به برنامه
67 وارنینگ به وجود اومد
که اکثرا این شکلی هستند


// Events
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
public event EventHandler AutoSizeChanged
{
add
{
project.MyPrintPreviewDialog.AutoSizeChanged' hides inherited member 'System.Windows.Forms.Form.AutoSizeChanged'. Use the new keyword if hiding was intended.

باز هم تشکر :قلب:

rostamkhani
یک شنبه 03 آذر 1387, 20:47 عصر
سلام
وظیفه بود اون جمله شما یک نقطه اضافه داره چون سوال شما رحمت است
با هم یه چیزی یاد گرفتیم

درباره کد بالا:
این کد خود PrintPreviewDialog دات نت است و بنده با Reflector کپی گرفتم و آوردم تو برنامه
کامپایل کردم .
اون 67 وارنینگ هم اکثرش بخاطر Property هایی که فقط برای مخفی کردن و غیر قابل ویرایش کردن ایجاد شده است و در کلاس استفاده نشده است به وجود اومدن .
توسط کد Attribute زیر Propertyها رو مخفی و غیر قابل ویرایش کردن


[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]

حال من این Attribute رو از بالای پروپرتی KeyPreview و WindowState ورداشتم تا بتونیم اون کارایی که میخواییم از PrintPreviewDialog بکشیم .

همانطور که میدونید Warnings مشکلی در اجرا ایجاد نمیکنه ولی اگه میخواهید Warnings برنامه خودتون رو مدیریت کنید و با این 67 Warnings غاتی نشه میتونید این فرم (MyPrintPreviewDialog) رو در یک ClassLibrary قرار دهید .

شما میتونید هر تغییری دیگه که دوست دارین رو به MyPrintPreviewDialog خودتون بدین و ابزارهای موجود در این PrintPreviewDialog خودمون رو تغییر بدین بهترین جا هم در آخر سازنده کلاس یا
در آخر تابع InitForm میباشد .
بنده در کد زیر در اول این دوتا متد BreakPoint گذاشتم تا هنگام اجرا براحتی پیدا کنید .
یا علی