zoukankan      html  css  js  c++  java
  • 各种对话框 Dialog

    对话框中我们常用了以下几种:

      1、文件对话框(FileDialog) 它又常用到两个:

       打开文件对话框(OpenFileDialog)

       保存文件对话(SaveFileDialog)

      2、字体对话框(FontDialog)

      3、颜色对话框(ColorDialog)

      4、打印预浏对话框(PrintPreviewDialog)

      5、页面设置(PrintDialog)

      6、打印对话框(PrintDialog)

       文件对话框(FileDialog)

      一、打开文件对话框(OpenFileDialog)

      1、 OpenFileDialog控件有以下基本属性

    InitialDirectory 对话框的初始目录
    Filter 要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*"
    FilterIndex 在对话框中选择的文件筛选器的索引,如果选第一项就设为1
    RestoreDirectory 控制对话框在关闭之前是否恢复当前目录
    FileName 第一个在对话框中显示的文件或最后一个选取的文件
    Title 将显示在对话框标题栏中的字符
    AddExtension 是否自动添加默认扩展名
    CheckPathExists
    在对话框返回之前,检查指定路径是否存在
    DefaultExt 默认扩展名
    DereferenceLinks 在从对话框返回前是否取消引用快捷方式
    ShowHelp
    启用"帮助"按钮
    ValiDateNames 控制对话框检查文件名中是否不含有无效的字符或序列

      2、 OpenFileDialog控件有以下常用事件

    FileOk 当用户点击"打开"或"保存"按钮时要处理的事件
    HelpRequest 当用户点击"帮助"按钮时要处理的事件

           代码实现
    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("");
    }
    }

    /***选择文件***/


        二、保存文件对话框(SaveFileDialog)

      保存文件对话框控件有两种情况,一就是保存,二就是另存为,保存很简单,就是在文件已经打开的情况下的,再把文件写一篇,在这里我们主要讲另存为 的情况(SaveAs)。

      1,SaveFileDialog控件的属性

    Filter 要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"
    FilterIndex 在对话框中选择的文件筛选器的索引,如果选第一项就设为1
    RestoreDirectory 控制对话框在关闭之前是否恢复当前目录
    AddExtension 是否自动添加默认扩展名
    CheckFileExists  
    CheckPathExists
    在对话框返回之前,检查指定路径是否存在
    Container 控制在将要创建文件时,是否提示用户。只有在ValidateNames为真值时,才适用。
    DefaultExt 缺省扩展名
    DereferenceLinks
    在从对话框返回前是否取消引用快捷方式
    FileName 第一个在对话框中显示的文件或最后一个选取的文件
    InitialDirector 对话框的初始目录
    OverwritePrompt 控制在将要在改写现在文件时是否提示用户,只有在ValidateNames为真值时,才适用
    ShowHelp 启用"帮助"按钮
    Title 将显示在对话框标题栏中的字符
    ValidateNames 控制对话框检查文件名中是否不含有无效的字符或序列

      2、SaveFileDialog事件如下:

    FileOk 当用户点击"打开"或"保存"按钮时要处理的事件
    HelpRequest 当用户点击"帮助"按钮时要处理的事件

     代码实现
    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);
    }
    }
    }

    /***保存文件***/

    一个相关的File的类库,下面是源程序:

    using System;
    using System.IO;
    using System.Windows.Forms;
    using System.Text;

    namespace dialog
    {
    /// 
    /// Summary description for File.
    /// 

    public class File
    {
    string fileName;
    public File(string fileName)
    {
    this.fileName=fileName;
    }


    public string ReadFile()
    {
    try
    {
    StreamReader sr
    =new StreamReader(fileName,Encoding.Default);
    string result=sr.ReadToEnd();
    sr.Close();
    return result;
    }

    catch(Exception e){MessageBox.Show(e.Message);}
    return null;
    }


    public void WriteFile(string str)
    {
    try
    {
    StreamWriter sw
    =new StreamWriter(fileName,false,Encoding.Default);
    sw.Write(str);
    sw.Close();
    }

    catch(Exception e){MessageBox.Show(e.Message,"保存文件出错!");}
    }

    }

    }


    字体对话框(FontDialog)
     
      一、 字体对话框(FontDialog)常用属性

    ShowColor 控制是否显示颜色选项
    AllowScriptChange 是否显示字体的字符集
    Font 在对话框显示的字体
    AllowVerticalFonts 是否可选择垂直字体
    Color 在对话框中选择的颜色
    FontMustExist 当字体不存在时是否显示错误
    MaxSize 可选择的最大字号
    MinSize 可选择的最小字号
    ScriptsOnly 显示排除OEM和Symbol字体
    ShowApply 是否显示"应用"按钮
    ShowEffects 是否显示下划线、删除线、字体颜色选项
    ShowHelp 是否显示"帮助"按钮

      二、 字体对话框(FontDialog)的事件

    Apply 当点击"应用"按钮时要处理的事件
    HelpRequest 当点击"帮助"按钮时要处理的事件

      实现代码
    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;    //将当前选定的文字改变字体
    }
    }

    上面代码将选定的文本设置为当前FontDialog对话框中的字体。

      颜色对话框(ColorDialog)
      一、 颜色对话框(ColorDialog)的常见属性

    AllowFullOpen 禁止和启用"自定义颜色"按钮
    FullOpen 是否最先显示对话框的"自定义颜色"部份
    ShowHelp 是否显示"帮助"按钮
    Color 在对话框中显示的颜色
    AnyColor 显示可选择任何颜色
    CustomColors 是否显示自定义颜色
    SolidColorOnly 是否只能选择纯色

      实现代码:

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


      页面设置(PageSetupDialog)

      一、页面设置(PageSetupDialog)常见属性

    AllowMargins 设置是否可以对边距的编辑
    AllowOrientation 是否可以使用"方向"单选框
    AllowPaper 设置是否可以对纸张大小的编辑
    AllowPrinter 设置是否可以使用"打印机"按钮
    Document 获取打印机设置的PrintDocument
    MinMargins 允许用户选择的最小边距

     打印预浏及打印

      打印是我们在windows编程中常要用到的功能,在以前都是很麻烦工作,但在Microsoft .net Framework中打印是以组件提供给我们使用。

      一, 在.net环境中,说到打印,就不能不说PrintDocumet这个类,PrintDocument属于System.Drawing.Printing这个名字空间,PrintDocument这个类是实现打印的核心代码。

      如果要实现打印,就必需首先构造PrintDocument对象添加打印事件,
    printDocument.PrintPage+=new PrintPageEventHandler(this.printDocument_PrintPage)
    打印其实也是调用Graphics类的方法进行画图,下面这代码是根据MSDN上提供的例程改写的。MSDN打印例程地址:
      http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDrawingPrintingPrintDocumentClassTopic.asp ,有兴趣的网友可以参改一下。
      下面是改写的printDocument_PrintPage:

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

      在这里可以完成整个打印任务。把printDocument_PrintPage构造好后,就可以打印和打印预浏。

      二、打印预浏对话框(PrintPreviewDialog)

      打印预浏控件是用来显示一个打印文档在打印后的效果。在打印预浏对话框中包含有,打印、缩放、单页或多页、关闭等按钮。对话框如下:

      打印预浏对话框没有太多的属性,最后通过ShowDialog()调用。上面的实现代码如下:

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

    }

       很简单的,只要你把PrintDocument_PrintPage()写好了,这里就很容易了。

      三、打印对话框(PrintDialog)

      1、打印对话框(PrintDialog)只要有以下属性:

    AllowPrintToFile 禁止或使用"打印到文件"复选框
    AllowSelection 禁止或使用"选定内容"单选框
    AllowSomePages 禁止或使用"页"单选按钮
    Document 从中获取打印机设置的PrintDocument
    PrintToFile 打印到文件"复选框是否选中
    ShowHelp 控制是否显示"帮助"按钮
    ShowNetWork 控制是否显示"网络"按钮

       代码实现:

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

    }

    }
  • 相关阅读:
    力扣(LeetCode)922. 按奇偶排序数组 II
    力扣(LeetCode)1002. 查找常用字符
    力扣(LeetCode)15. 三数之和
    Java == 和 equals 区别
    力扣(LeetCode)125. 验证回文串
    力扣(LeetCode) 905. 按奇偶排序数组
    力扣(LeetCode)832. 翻转图像
    力扣(LeetCode) 771. 宝石与石头
    Sticks
    荷马史诗
  • 原文地址:https://www.cnblogs.com/flashicp/p/710176.html
Copyright © 2011-2022 走看看