"

کنترل pageSetupDialog در سی شارپ

زهیر صفری 1404/05/03 0 17
لینک کوتاه http://zoheirsoftware.com/z/eb4d3a96a |
آموزش کنترل PageSetupDialog,کنترل pageSetupDialog در سی شارپ,مفهوم کنترل pageSetupDialog

مقدمه 

کنترل PageSetupDialog در زبان #C (سی‌شارپ) یکی از کنترل‌های مربوط به چاپ در برنامه‌های دسکتاپ (Windows Forms) است.

این کنترل به کاربر اجازه می‌دهد تا تنظیمات صفحه برای چاپ مانند اندازه کاغذ، حاشیه‌ها، جهت صفحه و غیره را تعیین کند.

 

🎯 مفهوم کنترل PageSetupDialog در سی‌شارپ

کنترل PageSetupDialog در سی‌شارپ یکی از کنترل‌های آماده و کادرهای محاوره‌ای استاندارد ویندوز (Common Dialog) است که برای تنظیم مشخصات صفحه چاپی استفاده می‌شود.

این کنترل به کاربران برنامه اجازه می‌دهد قبل از چاپ، تنظیماتی مانند اندازه کاغذ، جهت صفحه (Portrait یا Landscape)، حاشیه‌ها، و انتخاب پرینتر پیش‌فرض را تعیین کنند.

این کنترل با کلاس‌های دیگر چاپی مانند PrintDocument, PrintDialog, و PrintPreviewDialog ترکیب شده و بخش مهمی از فرایند چاپ در برنامه‌های Windows Forms را تشکیل می‌دهد.

 

🔍 عملکرد PageSetupDialog  در #C

وقتی شما یک شیء از نوع PageSetupDialog ایجاد می‌کنید، در واقع پنجره‌ای در اختیار کاربر قرار می‌دهید که تنظیمات مربوط به چاپ را شخصی‌سازی کند.

این تنظیمات در شیء PrintDocument ذخیره می‌شوند و در هنگام چاپ از آن‌ها استفاده می‌شود.

به‌عبارت‌دیگر:

شما یک سند برای چاپ دارید (PrintDocument)

با استفاده از PageSetupDialog مشخص می‌کنید:

اندازه کاغذ: مثلاً A4، A5، Letter و...

جهت صفحه: عمودی یا افقی

حاشیه‌های بالا، پایین، چپ و راست

انتخاب پرینتر پیش‌فرض

سپس با استفاده از این تنظیمات، چاپ یا پیش‌نمایش را انجام می‌دهید.

عملکرد PageSetupDialog  در #C

 

✳️ ویژگی‌های کنترل PageSetupDialog

 

نام ویژگی نوع داده توضیحات
Document PrintDocument سند چاپی که تنظیمات روی آن اعمال می‌شود.
PageSettings PageSettings شیء حاوی تنظیمات صفحه (کاغذ، حاشیه، جهت، و...)
PrinterSettings PrinterSettings تنظیمات مربوط به پرینتر انتخابی
AllowMargins bool آیا کاربر اجازه دارد حاشیه‌ها را تغییر دهد؟
AllowOrientation bool آیا کاربر می‌تواند جهت صفحه (افقی یا عمودی) را تغییر دهد؟
AllowPaper bool اجازه انتخاب اندازه کاغذ توسط کاربر
AllowPrinter bool نمایش بخش انتخاب پرینتر در دیالوگ
EnableMetric bool اگر true باشد، از میلی‌متر به‌جای اینچ برای نمایش اندازه‌ها استفاده می‌شود.
MinMargins Margins مقداردهی حداقل حاشیه مجاز در صفحه چاپی

 

ویژگی‌های کنترل PageSetupDialog

 

🌟 مزایای استفاده از PageSetupDialog در سی‌شارپ


✅ 1. ظاهر استاندارد و آشنا برای کاربران

کنترل PageSetupDialog یک کادر محاوره‌ای استاندارد سیستم‌عامل ویندوز است. کاربران ویندوز به این نوع دیالوگ‌ها عادت دارند، بنابراین هنگام استفاده از آن در برنامه، نیازی به آموزش یا راهنمایی خاصی نیست.

✅ 2. افزایش سرعت توسعه نرم‌افزار

این کنترل به‌صورت آماده و از پیش طراحی شده ارائه شده است. توسعه‌دهنده نیازی ندارد فرم جدیدی برای تنظیمات چاپ طراحی کند، فقط با چند خط کد می‌تواند دیالوگ تنظیمات را فراخوانی کند.

✅ 3. پشتیبانی کامل از تنظیمات چاپ

کاربر می‌تواند موارد مختلفی مانند:

اندازه کاغذ (A4, A5, Letter, Legal و...)

جهت صفحه (Portrait یا Landscape)

حاشیه‌ها (Margins)

پرینتر پیش‌فرض
را از طریق همین یک دیالوگ تنظیم کند. این ویژگی، تجربه‌ای کامل و دقیق برای چاپ ارائه می‌دهد.

✅ 4. سازگاری با پرینترهای مختلف

کنترل PageSetupDialog از تنظیمات پرینترهای مختلفی که روی سیستم نصب شده‌اند پشتیبانی می‌کند و به کاربر اجازه انتخاب هر پرینتری را می‌دهد که در سیستم موجود است.

✅ 5. قابلیت شخصی‌سازی بالا

توسعه‌دهنده می‌تواند مشخص کند که کاربر فقط به برخی تنظیمات دسترسی داشته باشد؛ مثلاً:

فقط تغییر حاشیه مجاز باشد (AllowMargins = true)

یا فقط اجازه تغییر پرینتر داده شود (AllowPrinter = true)

✅ 6. یکپارچگی با سایر کنترل‌های چاپ

PageSetupDialog به‌راحتی با کنترل‌های دیگر چاپ مانند PrintPreviewDialog و PrintDialog ترکیب می‌شود. تنظیماتی که در PageSetup انجام می‌شود، مستقیماً در PrintPreview و عملیات واقعی چاپ به‌کار می‌رود.

✅ 7. کاهش خطای کاربر در تنظیمات چاپ

با فراهم کردن یک واسط کاربری استاندارد، احتمال اشتباه در وارد کردن تنظیمات به صورت دستی از بین می‌رود. این موضوع برای چاپ‌های حساس (مثل گزارش مالی یا فاکتور رسمی) بسیار مهم است.

✅ 8. پشتیبانی از واحدهای اندازه‌گیری مختلف

با استفاده از ویژگی EnableMetric می‌توان انتخاب کرد که واحد اندازه‌گیری در دیالوگ میلی‌متر باشد یا اینچ. این موضوع در برنامه‌های بین‌المللی یا متناسب با کشور خاص اهمیت زیادی دارد.

✅ 9. افزایش حرفه‌ای بودن نرم‌افزار

برنامه‌ای که امکان مدیریت تنظیمات چاپ را به صورت حرفه‌ای و استاندارد در اختیار کاربر قرار می‌دهد، از نظر ظاهر و عملکرد بسیار قابل اعتمادتر و حرفه‌ای‌تر به نظر می‌رسد.

 

مزایای استفاده از PageSetupDialog در سی‌شارپ

 

💻 مثال کاربردی از استفاده PageSetupDialog

 در این روش به صورت کد نویسی  از این کنترل استفاده میکنیم.

 

using System;
using System.Drawing.Printing;
using System.Windows.Forms;

public class PageSetupExample : Form
{
    private Button btnPageSetup;
    private PrintDocument printDoc;
    private PageSetupDialog pageSetupDialog;

    public PageSetupExample()
    {
        // مقداردهی اولیه
        btnPageSetup = new Button { Text = "تنظیمات صفحه چاپ", AutoSize = true, Location = new System.Drawing.Point(30, 30) };
        btnPageSetup.Click += BtnPageSetup_Click;

        printDoc = new PrintDocument();

        pageSetupDialog = new PageSetupDialog
        {
            Document = printDoc,
            AllowMargins = true,
            AllowOrientation = true,
            AllowPaper = true,
            AllowPrinter = true
        };

        this.Controls.Add(btnPageSetup);
        this.Text = "مثال PageSetupDialog";
        this.StartPosition = FormStartPosition.CenterScreen;
    }

    private void BtnPageSetup_Click(object sender, EventArgs e)
    {
        DialogResult result = pageSetupDialog.ShowDialog();
        if (result == DialogResult.OK)
        {
            MessageBox.Show("تنظیمات با موفقیت اعمال شد.");
        }
    }

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.Run(new PageSetupExample());
    }
}

مثال کاربردی از استفاده PageSetupDialog

 

مثال کاربردی از استفاده PageSetupDialog

مثال کاربردی از استفاده PageSetupDialog

 

🧠 تمرین مبحث  کنترل  PageSetupDialog در سی شارپ برای تسلط بیشتر دانشجو

برنامه‌ای بنویس که پس از تنظیم صفحه، پیش‌نمایش چاپ (PrintPreviewDialog) را نشان دهد.

تنظیمات انتخابی توسط کاربر (مانند اندازه کاغذ و حاشیه‌ها) را در یک فایل ذخیره کن و در اجرای بعدی بارگذاری کن.

فرم تنظیمات پرینت را در برنامه‌ات در قالب تب جدا نمایش بده (مثلاً با استفاده از TabControl).

اگر کاربر جهت صفحه را تغییر داد (Portrait ↔ Landscape)، آن را در فرم نشان بده.

 

❓ سوالات متداول مبحث  PageSetupDialog


1. آیا PageSetupDialog فقط با PrintDocument کار می‌کند؟

بله، این کنترل نیاز به یک شی از نوع PrintDocument دارد تا تنظیمات را روی آن اعمال کند.

2. آیا می‌توان حاشیه‌ها را به صورت پیش‌فرض تعیین کرد؟

بله، با تنظیم خاصیت PageSettings.Margins می‌توان حاشیه‌ها را مقداردهی اولیه کرد.

3. چه تفاوتی بین PageSetupDialog و PrintDialog وجود دارد؟

PageSetupDialog برای تنظیم صفحه (کاغذ، جهت، حاشیه‌ها) است، در حالی که PrintDialog برای انتخاب پرینتر و تنظیمات چاپ است.

4. آیا امکان گرفتن خروجی PDF با استفاده از PageSetupDialog وجود دارد؟

به صورت مستقیم خیر، اما می‌توان تنظیمات را اعمال کرد و سپس از پرینتر مجازی PDF استفاده نمود.

5. آیا این کنترل در WPF هم وجود دارد؟

به صورت مستقیم نه، اما WPF از دیالوگ مشابهی با کلاس System.Windows.Controls.PrintDialog استفاده می‌کند.

 

🧾 جمع‌بندی کنترل  PageSetupDialog در #C

کنترل PageSetupDialog در #C ابزاری استاندارد و کاربردی برای ارائه تنظیمات چاپ به کاربر است.

این کنترل با سایر کنترل‌های چاپ مانند PrintDialog و PrintPreviewDialog ترکیب شده و تجربه‌ای کامل برای چاپ در برنامه‌های ویندوز فرم ارائه می‌دهد.

سادگی در استفاده، سازگاری با پرینترهای مختلف، و پشتیبانی از تنظیمات کامل کاغذ و حاشیه‌ها از مهم‌ترین مزایای آن است.

 

 

دوره های مرتبط
آموزش برنامه نویسی سی شارپ,آموزش پروژه محور سی شارپ,آموزش مقدماتی تا پیشرفته سی شارپ,طراحی نرم افزار تحت ویندوز

آموزش برنامه نویسی سی شارپ

زبان شی گرایی حرفه ای سی شارپ یک زبان قدرتمند برای طراحی نرم افزار به شمار میرود.

999,000 تومان

3k بازدید

ارسال دیدگاه

برای ارسال نظر لطفا ورود یا ثبت نام کنید.