c#之打印控件與對話框控件


1、PrinterDocument

    PrinterDocument是主要的打印控件,打印的時候必須添加它是對PrinterDocument類的實現,

通過它的PrinterPage事件可以設置打印的內容。

2、PrinterDialog

    PrinterDialog提供打印機設置對話框,具有Document屬性和Showdialog方法,將其Document

屬性設置為PrinterDocument對象即可。

3、PageSetupDialog

    PageSetupDialog控件提供頁面設置對話框,常用的頁面設置元素有紙張、方向和頁邊距。

4、PrinterPreviewDialog

    PrinterPreviewDialog提供標准的打印預覽對話框,用於顯示文檔的打印效果。該控件包含用於打印

放大、顯示一頁或多頁的按鈕。該控件的關鍵屬性Document與PrinterDialog控件的相同,用於設置要

預覽的文檔,此文檔必須是PrinterDocument對象。

5、PrinterPreviewControl

    PrinterPreviewControl幫助定制打印預覽對話框,可以顯示文檔的打印效果,沒有按鈕和其他用戶

界面元素。該控件常用於打印預覽用戶界面,而PrinterPreviewDialog控件用於標准用戶界面。

打印的相關代碼:

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            Font f=new Font("黑體",18);
            SolidBrush s=new SolidBrush(Color.Black);
            e.Graphics.DrawString(rtxtNotepad.Text,f,s,10,10);//需要的參數
        }
        /// <summary>
        /// 打印設置
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void 打印設置ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            pageSetupDialog1.Document = printDocument1;
            pageSetupDialog1.ShowDialog();
        }
        /// <summary>
        /// 打印預覽
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void 打印預覽ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            printPreviewDialog1.Document = printDocument1;
            printPreviewDialog1.ShowDialog();
        }
        /// <summary>
        /// 打印
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void 打印ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            printDialog1.Document = printDocument1;
            DialogResult dr= printDialog1.ShowDialog();
            if (dr == DialogResult.OK)//當用戶點擊確定的時候執行打印
            {
                printDocument1.Print();
            }
        }

對話框控件:

colorDialog - 顏色選擇對話框

folderBrowserDialog - 文件路徑選擇對話框

fontDialog - 字體選擇對話框

openFileDialog - 打開文件對話框
openFileDialog.Filter = "文本文件.txt|*.txt|視頻文件|*.avi|所有文件|*.*";

saveFileDialog - 保存文件對話框
問題:如果我已經保存過了,那么在次保存不需要彈出對話框,而是直接執行保存就可以。

 

絕對路徑:帶盤符的 G:\0720\...

相對路徑:根據你當前程序的目錄下,找到某個文件夾 /css/css1.css

流:IO
StreamReader - 讀取流 sr.ReadToEnd();
StreamWriter - 輸出流 sw.Write(要輸出的內容);

上面幾種控件的應用代碼:

        bool b = false;
        bool s = true;

        /// <summary>
        /// 字體顏色
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void 字體顏色ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DialogResult dr= colorDialog1.ShowDialog();
            if (dr == DialogResult.OK)
            {
                rtxtNotepad.ForeColor = colorDialog1.Color;
            }
        }
        /// <summary>
        /// 字體樣式
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void 字體樣式ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DialogResult dr= fontDialog1.ShowDialog();
            if (dr == DialogResult.OK)
            {
                fontDialog1.ShowDialog();
                rtxtNotepad.Font = fontDialog1.Font;
                rtxtNotepad.ForeColor = fontDialog1.Color;
            }
        }
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsmiSave_Click(object sender, EventArgs e)
        {
            //文件從磁盤打開但是修改了內容
            if (b == true && rtxtNotepad.Modified == true)
            {
                rtxtNotepad.SaveFile(odlgNotepad.FileName);
                s = true;
            }
            else if (b == false && rtxtNotepad.Text.Trim() != "" && sdlgNotepad.ShowDialog() == DialogResult.OK)
            {
                rtxtNotepad.SaveFile(sdlgNotepad.FileName);
                s = true;
                b = true;
                odlgNotepad.FileName = sdlgNotepad.FileName;
            }
        }
        /// <summary>
        /// 另存為
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsmiSaveAs_Click(object sender, EventArgs e)
        {
            if (sdlgNotepad.ShowDialog() == DialogResult.OK)
            {
                rtxtNotepad.SaveFile(sdlgNotepad.FileName);
                s = true;
            }
        }
        /// <summary>
        /// 打開
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsmiOpen_Click(object sender, EventArgs e)
        {
            if (b == true || rtxtNotepad.Text.Trim() != "")
            {
                if (s == false)
                {
                    string result;
                    result = MessageBox.Show("文件尚未保存,是否保存?", "保存文件", MessageBoxButtons.YesNoCancel).ToString();
                    switch (result)
                    {
                        case "Yes":
                            //文件是從磁盤打開的
                            if (b == true)
                            {
                                //按打開的路徑進行保存
                                rtxtNotepad.SaveFile(odlgNotepad.FileName);
                            }
                            //不是從磁盤打開的
                            else if (sdlgNotepad.ShowDialog() == DialogResult.OK)
                            {
                                rtxtNotepad.SaveFile(sdlgNotepad.FileName);
                            }
                            s = true;
                            break;
                        case "No":
                            b = false;
                            rtxtNotepad.Text = "";
                            break;
                    }
                }
            }
            odlgNotepad.RestoreDirectory = true;
            if ((odlgNotepad.ShowDialog() == DialogResult.OK) && odlgNotepad.FileName != "")
            {
                rtxtNotepad.LoadFile(odlgNotepad.FileName);
                b = true;
            }
            s = true;
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM