دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
کنترل printPreviewDialog در سی شارپ
1404/07/09 -
Storage در SQL Server
1404/07/09 -
کنترل printPreviewControl در سی شارپ
1404/07/08 -
Service Broker در SQL Server
1404/07/08 -
کنترل radioButton در سی شارپ
1404/07/07 -
System View در SQL Server
1404/07/07
کنترل printPreviewDialog در سی شارپ

کنترل PrintPreviewDialog در سیشارپ
یکی از قابلیتهای مهم هر نرمافزاری که امکان چاپ اطلاعات را فراهم میکند، نمایش پیشنمایش چاپ (Print Preview) است.
کاربران معمولا دوست دارند قبل از اینکه اسناد، تصاویر یا دادههای خود را به پرینتر ارسال کنند، نسخهای از آن را در قالب یک پیشنمایش ببینند.
این کار باعث میشود مشکلات احتمالی مانند اشتباهات متنی، چیدمان نامناسب یا انتخاب اشتباه صفحات قبل از چاپ اصلی شناسایی و اصلاح شود.
در محیط Windows Forms زبان برنامهنویسی سیشارپ، برای نمایش پیشنمایش چاپ، کنترلهای مختلفی در دسترس هستند.
یکی از مهمترین آنها، PrintPreviewDialog است که به شکل یک دیالوگ آماده از سیستمعامل ظاهر میشود و محتوای چاپی را نمایش میدهد.
مفهوم PrintPreviewDialog در سیشارپ
PrintPreviewDialog یک کنترل از فضای نام System.Windows.Forms است که وظیفه دارد یک پنجرهی استاندارد برای نمایش پیشنمایش چاپ به کاربر باز کند.
این کنترل در واقع یک دیالوگ (Dialog) است و برخلاف کنترل PrintPreviewControl، بهطور مستقیم روی فرم قرار نمیگیرد، بلکه وقتی فراخوانی میشود، بهصورت یک پنجره جدا باز میشود.
نکات کلیدی:
- PrintPreviewDialog خودش چیزی برای چاپ تولید نمیکند، بلکه فقط پیشنمایش نمایش میدهد.
- برای نمایش محتوا باید به یک شیء PrintDocument متصل شود.
- به صورت آماده، ابزارهایی مانند بزرگنمایی، حرکت بین صفحات و پرینت را در پنجره خود دارد.
- ظاهر آن استاندارد ویندوز است و کاربر به راحتی با آن ارتباط برقرار میکند.
به بیان ساده، PrintPreviewDialog همان چیزی است که اکثر کاربران هنگام دیدن گزینهی "Print Preview" در نرمافزارهایی مثل Word یا Excel تجربه میکنند.
اجزای اصلی PrintPreviewDialog در سی شارپ
برای اینکه بتوانیم از PrintPreviewDialog استفاده کنیم، معمولا سه جزء اصلی در کنار هم قرار میگیرند:
-
PrintDocument
مسئول تولید محتوای چاپی است (مثلاً ترسیم متن یا تصویر روی کاغذ). -
PrintPreviewDialog
وظیفه نمایش پیشنمایش را دارد. -
کدی برای رویداد PrintPage
در این رویداد مشخص میکنیم چه چیزی باید چاپ شود.
تفاوت PrintPreviewDialog با PrintPreviewControl
-
PrintPreviewDialog
یک دیالوگ آماده است. سریعترین روش برای نمایش پیشنمایش چاپ. -
PrintPreviewControl
خود کنترل است که باید روی فرم قرار گیرد و همه چیز (مانند دکمهها و مدیریت صفحات) را خودتان طراحی کنید.
اگر نیاز دارید به سرعت پیشنمایش چاپ را نشان دهید، PrintPreviewDialog بهترین گزینه است.
ایجاد PrintPreviewDialog در فرم در سی شارپ
روش اول برای استفاده، استفاده از ابزارهای Toolbox در ویژوال استودیو است:
یک پروژه جدید Windows Forms App ایجاد کنید.
از Toolbox بخش Printing، کنترلهای زیر را روی فرم قرار دهید:
- یک PrintDocument
- یک PrintPreviewDialog
در خاصیت Document کنترل PrintPreviewDialog، شیء PrintDocument را تنظیم کنید.
در رویداد PrintPage مربوط به PrintDocument، محتوای چاپی را مشخص کنید.
برای نمایش دیالوگ، کافی است در یک دکمه یا رویداد بنویسید:
printPreviewDialog1.ShowDialog();
آیا به دنبال یک فرصت عالی برای یادگیری برنامهنویسی هستید؟ 🚀
با دوره آموزشی سیشارپ ما، شما میتوانید مهارتهای خود را به سطح جدیدی ارتقا دهید! این دوره بهطور کامل طراحی شده تا به شما کمک کند تا از مبتدی تا پیشرفته در دنیای برنامهنویسی سیشارپ پیش بروید.
👨🏫 چرا دوره ما را انتخاب کنید؟
- محتوای جامع و عملی: با پروژههای واقعی و تمرینات عملی، یادگیری را به تجربهای جذاب تبدیل کنید.
- مدرس مجرب: از تجربه و دانش مدرس حرفهای بهرهمند شوید که شما را در هر مرحله از یادگیری راهنمایی میکنند.
- پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
- دسترسی مادامالعمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، میتوانید به آن مراجعه کنید.
💡 فرصت را از دست ندهید!
بایادگیری سیشارپ، میتوانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژههای جذاب و چالشبرانگیز شرکت کنید.
همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آیندهای روشنتر بردارید!
شرکت در دوره آموزش برنامه نویسی سی شارپ
ایجاد PrintPreviewDialog در فرم با کدنویسی
روش دیگر، تعریف و مقداردهی از طریق کد است.
مثال ساده:
using System;
using System.Drawing;
using System.Drawing.Printing;
using System.Windows.Forms;
namespace PrintPreviewDialogExample
{
public class MainForm : Form
{
private PrintDocument printDocument;
private PrintPreviewDialog previewDialog;
private Button btnShowPreview;
public MainForm()
{
this.Text = "نمونه PrintPreviewDialog در سی شارپ";
this.Size = new Size(600, 400);
// ایجاد PrintDocument
printDocument = new PrintDocument();
printDocument.PrintPage += PrintDocument_PrintPage;
// ایجاد PrintPreviewDialog
previewDialog = new PrintPreviewDialog();
previewDialog.Document = printDocument;
previewDialog.Width = 800;
previewDialog.Height = 600;
// دکمه نمایش
btnShowPreview = new Button();
btnShowPreview.Text = "نمایش پیشنمایش چاپ";
btnShowPreview.Location = new Point(200, 150);
btnShowPreview.Click += BtnShowPreview_Click;
this.Controls.Add(btnShowPreview);
}
private void BtnShowPreview_Click(object sender, EventArgs e)
{
previewDialog.ShowDialog();
}
private void PrintDocument_PrintPage(object sender, PrintPageEventArgs e)
{
e.Graphics.DrawString("سلام دنیا! این متن برای چاپ و پیشنمایش است.",
new Font("Tahoma", 16), Brushes.Black, 100, 100);
}
[STAThread]
public static void Main()
{
Application.EnableVisualStyles();
Application.Run(new MainForm());
}
}
}
ویژگیهای مهم PrintPreviewDialog در سی شارپ
-
Document
تعیین میکند کدام PrintDocument باید پیشنمایش داده شود. -
Width و Height
اندازه پنجره پیشنمایش. -
Icon
آیکن دیالوگ را مشخص میکند. -
Name
نام کنترل در فرم. -
MinimizeBox و MaximizeBox
امکان کوچک یا بزرگ کردن دیالوگ.
مدیریت محتوای چند صفحهای
اگر محتوای شما طولانی باشد، میتوانید از ویژگی HasMorePages استفاده کنید:
private int currentPage = 0;
private void PrintDocument_PrintPage(object sender, PrintPageEventArgs e)
{
currentPage++;
e.Graphics.DrawString("صفحه " + currentPage,
new Font("Tahoma", 14), Brushes.Black, 100, 100);
if (currentPage < 5) // اگر کمتر از ۵ صفحه چاپ شده
{
e.HasMorePages = true; // ادامه دارد
}
else
{
e.HasMorePages = false; // تمام شد
currentPage = 0; // ریست برای استفادههای بعدی
}
}
با این روش کاربر میتواند در PrintPreviewDialog بین صفحات حرکت کند.
یک مثال کاملتر: پیشنمایش متن وارد شده توسط کاربر
public class MainForm : Form
{
private PrintDocument printDoc;
private PrintPreviewDialog previewDialog;
private TextBox txtInput;
private Button btnPreview;
public MainForm()
{
this.Text = "پیشنمایش چاپ متن";
this.Size = new Size(600, 400);
txtInput = new TextBox();
txtInput.Multiline = true;
txtInput.Size = new Size(400, 200);
txtInput.Location = new Point(20, 20);
btnPreview = new Button();
btnPreview.Text = "نمایش پیشنمایش";
btnPreview.Location = new Point(20, 240);
btnPreview.Click += BtnPreview_Click;
printDoc = new PrintDocument();
printDoc.PrintPage += PrintDoc_PrintPage;
previewDialog = new PrintPreviewDialog();
previewDialog.Document = printDoc;
this.Controls.Add(txtInput);
this.Controls.Add(btnPreview);
}
private void BtnPreview_Click(object sender, EventArgs e)
{
previewDialog.ShowDialog();
}
private void PrintDoc_PrintPage(object sender, PrintPageEventArgs e)
{
e.Graphics.DrawString(txtInput.Text,
new Font("Tahoma", 12), Brushes.Black, 50, 50);
}
}
مزایا و معایب PrintPreviewDialog در سی شارپ
-
مزایا:
- سریع و ساده برای استفاده.
- ظاهر استاندارد و آشنا برای کاربران.
- امکانات آماده مثل بزرگنمایی، مرور صفحات و چاپ نهایی.
-
معایب:
- ظاهر آن محدود به دیالوگ استاندارد ویندوز است.
- قابل سفارشیسازی کامل نیست.
در برنامههایی که نیاز به طراحی خاص دارند (مثلاً نرمافزارهای گرافیکی) ممکن است کافی نباشد.
نکات حرفهای در استفاده از PrintPreviewDialog
- بهتر است همیشه رویداد PrintPage را طوری بنویسید که محتوای چند صفحهای بهدرستی مدیریت شود.
- اگر کاربر نیاز به انتخاب پرینتر دارد، میتوانید از PrintDialog در کنار PrintPreviewDialog استفاده کنید.
- برای متون فارسی، استفاده از فونتهای رایج مانند Tahoma یا B Nazanin توصیه میشود.
- اگر نیاز به کنترل بیشتر روی محیط پیشنمایش دارید، به جای PrintPreviewDialog از PrintPreviewControl استفاده کنید.
جمعبندی
کنترل PrintPreviewDialog یکی از سادهترین و کاربردیترین ابزارها برای نمایش پیشنمایش چاپ در سیشارپ است. این کنترل با اتصال به یک PrintDocument، پنجرهای استاندارد برای مشاهده و مرور صفحات قبل از چاپ اصلی در اختیار کاربر قرار میدهد.
مراحل استفاده بسیار ساده است:
ایجاد یک PrintDocument و تعریف محتوای چاپی در رویداد PrintPage.
ایجاد یک PrintPreviewDialog و تنظیم Document آن روی PrintDocument.
نمایش دیالوگ با دستور:
previewDialog.ShowDialog();
به این ترتیب کاربر قبل از چاپ واقعی میتواند تمام صفحات را مرور کند و از صحت محتوای چاپی مطمئن شود.
دوره های مرتبط

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