• 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:720...

    相对路径:根据你当前程序的目录下,找到某个文件夹 /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;
            }
  • 相关阅读:
    Oracle Sql优化之报表和数据仓库运算
    Oracle Sql优化之Rownum的使用
    Oracle Sql优化之范围处理
    c++11编译指令
    python 爬小说
    exvim快捷键
    几个崩溃问题
    网络穿透
    c# 拉取网页
    tars安装记
  • 原文地址:https://www.cnblogs.com/xtq0313/p/5899234.html
Copyright © 2020-2023  润新知