دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
کنترل printDialog در سی شارپ
1404/06/29 -
تابعها (FUNCTION) در SQL Server
1404/06/28 -
کنترل pictureBox در سی شارپ
1404/06/27 -
System Tables در Sql Server
1404/06/26 -
کنترل panel در سی شارپ
1404/06/25 -
security policy در Sql Server
1404/05/05
کنترل printDialog در سی شارپ

کنترل PrintDialog در سیشارپ چیست؟
PrintDialog یک کنترل آماده در Windows Forms است که بهعنوان یک پنجره محاورهای (Dialog Box) عمل میکند.
این پنجره به کاربر اجازه میدهد پرینتر مورد نظر خود را انتخاب کرده و تنظیمات چاپ را قبل از شروع عملیات چاپ تعیین کند.
یکی از نیازهای متداول در برنامههای دسکتاپی، امکان چاپ دادهها یا اسناد است.
زبان سی شارپ در بستر Windows Forms ابزارها و کنترلهای مختلفی برای این کار ارائه میدهد.
یکی از مهمترین این ابزارها کنترل PrintDialog است.
این کنترل به کاربران اجازه میدهد قبل از چاپ، تنظیمات مربوط به پرینتر، محدوده صفحات، تعداد کپی و سایر گزینهها را انتخاب کنند.
در واقع PrintDialog یک رابط گرافیکی استاندارد برای مدیریت فرآیند چاپ در اختیار کاربر قرار میدهد.
مهمترین قابلیتهای PrintDialog در سی شارپ
مهمترین قابلیتهای PrintDialog:
- انتخاب پرینتر پیشفرض یا سایر پرینترهای نصبشده روی سیستم
- انتخاب محدوده چاپ (صفحات خاص، همه صفحات، انتخاب متن)
- تعیین تعداد کپی
- دسترسی به تنظیمات پیشرفته پرینتر
کاربردهای PrintDialog در سی شارپ
PrintDialog معمولا در سناریوهای زیر استفاده میشود:
- چاپ متن موجود در یک کنترل مانند TextBox یا RichTextBox
- چاپ اسناد (PDF, Word, Excel) از طریق برنامه
- چاپ تصاویر و گزارشها
- فراهم کردن امکان انتخاب پرینتر برای کاربر در نرمافزارهای مدیریتی
اضافه کردن PrintDialog به فرم
برای استفاده از PrintDialog بهصورت طراحی:
- یک پروژهی جدید Windows Forms App بسازید.
- از Toolbox بخش Dialogs، کنترل PrintDialog را انتخاب کنید.
- آن را به فرم اضافه کنید (کنترلهای Dialog معمولاً روی فرم نمایش داده نمیشوند و در نوار پایین (Component Tray) دیده میشوند).
- با دوبار کلیک روی فرم، کدی بنویسید که هنگام کلیک روی یک دکمه، PrintDialog نمایش داده شود.
آیا به دنبال یک فرصت عالی برای یادگیری برنامهنویسی هستید؟ 🚀
با دوره آموزشی سیشارپ ما، شما میتوانید مهارتهای خود را به سطح جدیدی ارتقا دهید! این دوره بهطور کامل طراحی شده تا به شما کمک کند تا از مبتدی تا پیشرفته در دنیای برنامهنویسی سیشارپ پیش بروید.
👨🏫 چرا دوره ما را انتخاب کنید؟
- محتوای جامع و عملی: با پروژههای واقعی و تمرینات عملی، یادگیری را به تجربهای جذاب تبدیل کنید.
- مدرس مجرب: از تجربه و دانش مدرس حرفهای بهرهمند شوید که شما را در هر مرحله از یادگیری راهنمایی میکنند.
- پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
- دسترسی مادامالعمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، میتوانید به آن مراجعه کنید.
💡 فرصت را از دست ندهید!
بایادگیری سیشارپ، میتوانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژههای جذاب و چالشبرانگیز شرکت کنید.
همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آیندهای روشنتر بردارید!
شرکت در دوره آموزش برنامه نویسی سی شارپ
ایجاد PrintDialog با کدنویسی
بهصورت دستی نیز میتوان یک نمونه از PrintDialog ایجاد کرد. مثال:
using System;
using System.Drawing;
using System.Drawing.Printing;
using System.Windows.Forms;
namespace PrintDialogExample
{
public class MainForm : Form
{
private Button btnPrint;
private PrintDialog printDialog;
private PrintDocument printDocument;
public MainForm()
{
this.Text = "نمونه PrintDialog در سی شارپ";
this.Size = new Size(400, 200);
btnPrint = new Button();
btnPrint.Text = "چاپ";
btnPrint.Location = new Point(150, 70);
btnPrint.Click += BtnPrint_Click;
// شیء PrintDocument برای چاپ محتوا
printDocument = new PrintDocument();
printDocument.PrintPage += PrintDocument_PrintPage;
// نمونهسازی PrintDialog
printDialog = new PrintDialog();
printDialog.Document = printDocument;
this.Controls.Add(btnPrint);
}
private void BtnPrint_Click(object sender, EventArgs e)
{
if (printDialog.ShowDialog() == DialogResult.OK)
{
printDocument.Print();
}
}
private void PrintDocument_PrintPage(object sender, PrintPageEventArgs e)
{
e.Graphics.DrawString("سلام! این یک متن نمونه است.",
new Font("Tahoma", 14), Brushes.Black, 100, 100);
}
[STAThread]
public static void Main()
{
Application.EnableVisualStyles();
Application.Run(new MainForm());
}
}
}
توضیحات:
PrintDocument: شیئی است که وظیفه واقعی چاپ را بر عهده دارد.
PrintDialog: فقط رابط کاربری برای انتخاب تنظیمات چاپ است.
رویداد PrintPage: مشخص میکند چه چیزی باید روی صفحه چاپ شود.
ویژگیهای مهم PrintDialog در سی شارپ
-
Document
یک شیء از نوع PrintDocument به PrintDialog متصل میشود تا مشخص کند چه چیزی چاپ خواهد شد.
-
AllowSomePages
اگر true باشد، کاربر میتواند محدوده صفحات خاصی را برای چاپ انتخاب کند.
printDialog.AllowSomePages = true;
-
AllowSelection
امکان انتخاب بخش خاصی از متن یا سند برای چاپ فراهم میشود.
printDialog.AllowSelection = true;
-
PrinterSettings
تنظیمات مربوط به پرینتر را نگهداری میکند؛ شامل پرینتر پیشفرض، تعداد کپیها و...
رویدادهای مرتبط با چاپ
PrintDialog بهتنهایی رویداد خاصی ندارد، اما همراه با PrintDocument استفاده میشود که رویدادهای مهم زیر را دارد:
-
PrintPage
این رویداد اصلی برای تعیین محتوای چاپشده است.
printDocument.PrintPage += (s, e) =>
{
e.Graphics.DrawString("متن نمونه چاپی", new Font("Arial", 12), Brushes.Black, 50, 50);
};
-
BeginPrint
قبل از شروع عملیات چاپ رخ میدهد.
-
EndPrint
پس از پایان چاپ رخ میدهد.
نمونه چاپ محتوای TextBox
مثال ساده برای چاپ متن واردشده در TextBox:
private void BtnPrint_Click(object sender, EventArgs e)
{
if (printDialog.ShowDialog() == DialogResult.OK)
{
printDocument.PrintPage += (s, ev) =>
{
ev.Graphics.DrawString(textBox1.Text,
new Font("Times New Roman", 12), Brushes.Black, 100, 100);
};
printDocument.Print();
}
}
نکات کاربردی در استفاده از PrintDialog
- همیشه باید یک شیء PrintDocument با PrintDialog همراه باشد.
- بهتر است از ویژگیهای AllowSomePages و AllowSelection استفاده کنید تا کاربران کنترل بیشتری روی چاپ داشته باشند.
- با رویداد PrintPage میتوان متن، تصویر یا اشکال گرافیکی رسم کرد.
- در صورت نیاز میتوان از PageSetupDialog برای تنظیمات کاغذ استفاده کرد.
مقایسه PrintDialog با سایر Dialogها
- PrintDialog: فقط انتخاب پرینتر و تنظیمات چاپ.
- PageSetupDialog: تنظیم اندازه و حاشیههای کاغذ.
- PrintPreviewDialog: پیشنمایش سند قبل از چاپ.
مزایا و معایب PrintDialog در سی شارپ
-
مزایا:
- رابط کاربری استاندارد و آشنا برای کاربران ویندوز
- پشتیبانی از تمام پرینترهای نصبشده روی سیستم
- امکان انتخاب محدوده صفحات و تعداد کپی
-
معایب:
- وابسته به PrintDocument است (بهتنهایی عمل چاپ را انجام نمیدهد).
- برای طراحی قالبهای چاپ پیچیده نیاز به کدنویسی بیشتر دارد.
جمعبندی
کنترل PrintDialog یکی از ابزارهای کلیدی در C# برای چاپ اسناد و دادهها است. این کنترل یک پنجره استاندارد سیستمعامل را نمایش میدهد که به کاربر امکان انتخاب پرینتر و تنظیمات چاپ را میدهد.
برای استفاده مؤثر از آن باید:
یک شیء PrintDocument بسازید.
آن را به ویژگی Document در PrintDialog متصل کنید.
در رویداد PrintPage محتوای مورد نظر برای چاپ را تعریف کنید.
به این ترتیب میتوان متن، تصاویر و حتی نمودارها را از طریق نرمافزار خود چاپ کرد.
سوالات متداول :
❓ 1. کنترل PrintDialog در سیشارپ چه کاربردی دارد؟
✅ برای نمایش پنجره چاپ و انتخاب پرینتر، صفحات و تنظیمات چاپ استفاده میشود.
❓ 2. چگونه PrintDialog را نمایش دهیم؟
✅ با فراخوانی متد ShowDialog() میتوان پنجره چاپ را به کاربر نشان داد.
if (printDialog1.ShowDialog() == DialogResult.OK)
{
// اجرای عملیات چاپ
}
❓ 3. آیا میتوان تعداد صفحات یا انتخاب بخش خاصی از چاپ را محدود کرد؟
✅ بله، با استفاده از ویژگیهایی مثل AllowSelection و AllowSomePages.
❓ 4. PrintDialog چه محدودیتی دارد؟
✅ فقط رابط کاربری برای انتخاب پرینتر و تنظیمات چاپ فراهم میکند؛ عملیات چاپ واقعی باید با کنترلهایی مثل PrintDocument مدیریت شود.
دوره های مرتبط

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