دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
کنترل pageSetupDialog در سی شارپ
1404/05/03 -
نقش (Role) در Sql Server
1404/05/02 -
کنترل OpenFileDialog در سیشارپ
1404/04/31 -
ایجاد و مدیریت کاربر (User) در Sql Server
1404/04/30 -
کنترل MonthCalendar در سیشارپ
1404/04/29 -
مدیریت کاربران (Users ) در SQL Server
1404/04/28
کنترل 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
نام ویژگی | نوع داده | توضیحات |
---|---|---|
Document | PrintDocument | سند چاپی که تنظیمات روی آن اعمال میشود. |
PageSettings | PageSettings | شیء حاوی تنظیمات صفحه (کاغذ، حاشیه، جهت، و...) |
PrinterSettings | PrinterSettings | تنظیمات مربوط به پرینتر انتخابی |
AllowMargins | bool | آیا کاربر اجازه دارد حاشیهها را تغییر دهد؟ |
AllowOrientation | bool | آیا کاربر میتواند جهت صفحه (افقی یا عمودی) را تغییر دهد؟ |
AllowPaper | bool | اجازه انتخاب اندازه کاغذ توسط کاربر |
AllowPrinter | bool | نمایش بخش انتخاب پرینتر در دیالوگ |
EnableMetric | bool | اگر true باشد، از میلیمتر بهجای اینچ برای نمایش اندازهها استفاده میشود. |
MinMargins | Margins | مقداردهی حداقل حاشیه مجاز در صفحه چاپی |
🌟 مزایای استفاده از 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
در این روش به صورت کد نویسی از این کنترل استفاده میکنیم.
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 در سی شارپ برای تسلط بیشتر دانشجو
برنامهای بنویس که پس از تنظیم صفحه، پیشنمایش چاپ (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 ترکیب شده و تجربهای کامل برای چاپ در برنامههای ویندوز فرم ارائه میدهد.
سادگی در استفاده، سازگاری با پرینترهای مختلف، و پشتیبانی از تنظیمات کامل کاغذ و حاشیهها از مهمترین مزایای آن است.
دوره های مرتبط

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