zoukankan      html  css  js  c++  java
  • Winform中代码Dialog控件实现(打开,保存,改变字体,颜色,打印功能)

    //打开:
    private void openFileDialogBTN_Click(object sender, System.EventArgs e)
    {
        OpenFileDialog openFileDialog 
    = new OpenFileDialog();
        openFileDialog.InitialDirectory 
    = "c:\\";//注意这里写路径时要用c:\\而不是c:openFileDialog.Filter="文本文件|*.*|C#文件|*.cs|所有文件|*.*";
        openFileDialog.RestoreDirectory = true;
        openFileDialog.FilterIndex 
    = 1;
        
    if (openFileDialog.ShowDialog() == DialogResult.OK)
        
    {
            fName 
    = openFileDialog.FileName;
            File fileOpen 
    = new File(fName);
            isFileHaveName 
    = true;
            richTextBox1.Text 
    = fileOpen.ReadFile();
            richTextBox1.AppendText(
    "");
        }

    }


    //保存:

    private void saveAsDialogBTN_Click(object sender, System.EventArgs e)
    {
        SaveFileDialog saveFileDialog 
    = new SaveFileDialog();
        saveFileDialog.Filter 
    = "文本文件|*.*|C#文件|*.cs|所有文件|*.*";
        saveFileDialog.FilterIndex 
    = 2;
        saveFileDialog.RestoreDirectory 
    = true;
        
    if (saveFileDialog.ShowDialog() == DialogResult.OK)
        
    {
            
    if (saveFileDialog.ShowDialog() == DialogResult.OK)
            
    {
                fName 
    = saveFileDialog.FileName;
                File fSaveAs 
    = new File(fName);
                isFileHaveName 
    = true;
            file:
    //保存的文件有名字
                fSaveAs.WriteFile(richTextBox1.Text);
            }

        }

    }



    //改变字体大小

    private void fontDialogBTN_Click(object sender, System.EventArgs e)
    {
        FontDialog fontDialog 
    = new FontDialog();
        fontDialog.Color 
    = richTextBox1.ForeColor;
        fontDialog.AllowScriptChange 
    = true;
        fontDialog.ShowColor 
    = true;
        
    if (fontDialog.ShowDialog() != DialogResult.Cancel)
        
    {
            richTextBox1.SelectionFont 
    = fontDialog.Font;//将当前选定的文字改变字体
        }

    }


    //改变字体颜色:

    private void colorDialogBTN_Click(object sender, System.EventArgs e)
    {
        ColorDialog colorDialog 
    = new ColorDialog();
        colorDialog.AllowFullOpen 
    = true;
        colorDialog.FullOpen 
    = true;
        colorDialog.ShowHelp 
    = true;
        colorDialog.Color 
    = Color.Black;//初始化当前文本框中的字体颜色,当用户在ColorDialog对话框中点击"取消"按钮
    file://恢复原来的值
        colorDialog.ShowDialog();
        richTextBox1.SelectionColor 
    = colorDialog.Color;
    }


    //打印:

    private void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
        
    float linesPerPage = 0;//页面的行号
        float yPos = 0;//打印字符串的纵向位置
        int count = 0;//行计数器
        float leftMargin = e.MarginBounds.Left;//左边距
        float topMargin = e.MarginBounds.Top;//上边距
        string line = null;//行字符串
        Color clr = richTextBox1.SelectionColor;//当前的打印颜色,在我这个程序没有实现不同颜色打印
        SolidBrush b = new SolidBrush(clr);//刷子
        fnt = richTextBox1.SelectionFont;//当前的打印字体
        linesPerPage = e.MarginBounds.Height / fnt.GetHeight(e.Graphics);//每页可打印的行数
    file://逐行循行打印一页
        while (count)
        
    {
            yPos 
    = topMargin + (count * fnt.GetHeight(e.Graphics));
            e.Graphics.DrawString(line, fnt, b, leftMargin, yPos, 
    new StringFormat());
            count
    ++;
        }

    file:
    //如果该页打印完成而line不为空说明还有没完成的页面,发出下一次的打印事件,
    file://在下一次的打印中lineReader会自动读取上次没有打印完的内容。lineReader可以记录当前读取的位置
        if (line != null)
            e.HasMorePages 
    = true;
        
    else
            e.HasMorePages 
    = false;
    }


    private void printPreviewBTN_Click(object sender, System.EventArgs e)
    {
        lineReader 
    = new StringReader(richTextBox1.Text);
        
    try
        
    {
            PrintPreviewDialog printPreviewDialog1 
    = new PrintPreviewDialog();
            printPreviewDialog1.Document 
    = printDocument;
            printPreviewDialog1.FormBorderStyle 
    = FormBorderStyle.Fixed3D;
            printPreviewDialog1.ShowDialog(
    this);
        }

        
    catch (Exception excep)
        
    {
            MessageBox.Show(excep.Message, 
    "打印出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
            
    return;
        }

    }


    private void printDialogBTN_Click(object sender, System.EventArgs e)
    {
        PrintDialog printDialog 
    = new PrintDialog();
        printDialog.Document 
    = printDocument;
        
    if (printDialog.ShowDialog() != DialogResult.Cancel)
        
    {
            
    try
            
    {
                printDocument.Print();
            }

            
    catch (Exception ex)
            
    {
                MessageBox.Show(ex.Message);
            }

        }

    }
  • 相关阅读:
    8086汇编学习小记王爽汇编语言实验12
    8086汇编学习小记王爽汇编语言课程设计1
    activeMQ 持久化配置 kevin
    snmpwalk kevin
    tcp benchmark kevin
    apache camel 条件路由 kevin
    netty 并发访问测试配置 kevin
    snmp常见操作 kevin
    转发:RocketMQ与kafka的对比 kevin
    centos jdk 下载 kevin
  • 原文地址:https://www.cnblogs.com/di305449473/p/1243220.html
Copyright © 2011-2022 走看看