"

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

تیم تحریریه 1404/07/09 0 13
لینک کوتاه https://zoheirsoftware.com/z/871d2c73f |
کنترل printPreviewDialog در سی شارپ,مزایا و معایب PrintPreviewDialog در سی شارپ,ویژگی‌های مهم PrintPreviewDialog در سی شارپ

کنترل PrintPreviewDialog در سی‌شارپ 

یکی از قابلیت‌های مهم هر نرم‌افزاری که امکان چاپ اطلاعات را فراهم می‌کند، نمایش پیش‌نمایش چاپ (Print Preview) است.

کاربران معمولا دوست دارند قبل از اینکه اسناد، تصاویر یا داده‌های خود را به پرینتر ارسال کنند، نسخه‌ای از آن را در قالب یک پیش‌نمایش ببینند.

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

در محیط Windows Forms زبان برنامه‌نویسی سی‌شارپ، برای نمایش پیش‌نمایش چاپ، کنترل‌های مختلفی در دسترس هستند.

یکی از مهم‌ترین آن‌ها، PrintPreviewDialog است که به شکل یک دیالوگ آماده از سیستم‌عامل ظاهر می‌شود و محتوای چاپی را نمایش می‌دهد.

مفهوم PrintPreviewDialog در سی‌شارپ

PrintPreviewDialog یک کنترل از فضای نام System.Windows.Forms است که وظیفه دارد یک پنجره‌ی استاندارد برای نمایش پیش‌نمایش چاپ به کاربر باز کند.

این کنترل در واقع یک دیالوگ (Dialog) است و برخلاف کنترل PrintPreviewControl، به‌طور مستقیم روی فرم قرار نمی‌گیرد، بلکه وقتی فراخوانی می‌شود، به‌صورت یک پنجره جدا باز می‌شود.

نکات کلیدی:

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

به بیان ساده، PrintPreviewDialog همان چیزی است که اکثر کاربران هنگام دیدن گزینه‌ی "Print Preview" در نرم‌افزارهایی مثل Word یا Excel تجربه می‌کنند.

 

 

مفهوم PrintPreviewDialog در سی‌شارپ

 

اجزای اصلی PrintPreviewDialog در سی شارپ

برای اینکه بتوانیم از PrintPreviewDialog استفاده کنیم، معمولا سه جزء اصلی در کنار هم قرار می‌گیرند:

  • PrintDocument

    مسئول تولید محتوای چاپی است (مثلاً ترسیم متن یا تصویر روی کاغذ).
  • PrintPreviewDialog

    وظیفه نمایش پیش‌نمایش را دارد.
  • کدی برای رویداد PrintPage

    در این رویداد مشخص می‌کنیم چه چیزی باید چاپ شود.

 

اجزای اصلی PrintPreviewDialog در سی شارپ

تفاوت 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

    امکان کوچک یا بزرگ کردن دیالوگ.

 

 

ویژگی‌های مهم PrintPreviewDialog در سی شارپ

 

 مدیریت محتوای چند صفحه‌ای

اگر محتوای شما طولانی باشد، می‌توانید از ویژگی 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();


به این ترتیب کاربر قبل از چاپ واقعی می‌تواند تمام صفحات را مرور کند و از صحت محتوای چاپی مطمئن شود.

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

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

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

999,000 تومان

3.3k بازدید

ارسال دیدگاه

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