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;
        }

 

posted @ 2016-09-23 11:46  Angel落痕  阅读(5001)  评论(1编辑  收藏  举报