zoukankan      html  css  js  c++  java
  • 通用对话框学习一:OpenFileDialog

        在进行WinForm程序的开发时,经常会有提示用户输入特定的信息,但是对于常见的任务,例如,打开和保存文件,可以使用预先编写好的对话框类,而不是定制的对话框。

        对话框是一个在另一个窗口中显示的窗口,在继续执行程序流之前,可以让用户在对话框中输入一些数据。通用对话框常常用于从用户处获取一般性的信息,大多数应用程序都需要它,例如输入文件名,它是Windows操作系统的一部分。除了PrintPreviewDialog外,其他的对话框都派生子抽象基类CommonDialog。CommonDialog定义了一些方法和事件,他们对于所有的对话框类来说都是通用的。

       通用方法:

    Reset 在派生类中被重写时,将通用对话框的属性重置为默认值。
    Public method Supported by the .NET Compact Framework

    ShowDialog 

    已重载。 运行通用对话框。

         通用的事件:

    HelpRequest 当用户单击通用对话框中的“帮助”按钮时发生。

    CommonDialog类是一个抽象类,它有一个抽象的方法,abstract bool RunDialog ,因此它的继承类均需要实现这个方法。这次主要学习OpenFileDialog类的使用。

         OpenFileDialog类是一个sealed类,因此只能实例化。MSDN解释“提示用户打开文件。无法继承此类。”使用此类课检查某个文件是否存在并打开该文件。ShowReadOnly属性确定是否在对话框中显示只读复选框,ReadOnlyChecked属性指示是否选中只读复选框。

          它有很多的属性,下面通过一个例子来了解一些属性的使用。

          新建一个WinForm程序,有两个控件,button控件和一个textbox控件,事先在D盘建一个文本文档Test.txt,在里面任意添加内容。界面如下:

          对于button的点击事件,编写如下的代码:

    ODF的使用
     private void button1_Click(object sender, System.EventArgs e)
    {
    OpenFileDialog openFileDialog1
    = new OpenFileDialog();

    openFileDialog1.InitialDirectory
    = "d:\\";
    openFileDialog1.Filter
    = "txt files (*.txt)|*.txt|All files (*.*)|*.*";

    openFileDialog1.FilterIndex
    = 1;
    openFileDialog1.RestoreDirectory
    = true;

    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
    textBox1.Clear();
    using(StreamReader read = new StreamReader(openFileDialog1.FileName,Encoding.Default))
    {
    string line;
    while ((line=read.ReadLine())!=null)
    {
    textBox1.AppendText(line);
    }
    }
    }
    }

         打开的文件对话框的一些属性时可以进行设置的,比如打开什么路径下的文件,可以对文件夹中的文件进行筛选。

         openFileDialog1.Title="选择文件";Title属性设置打开对话框的名字,默认是“打开”,但是i这个名字并不是最好的。

         openFileDialog1.InitialDirectory = "c:\\";InitialDirectory属性,设置打开的默认目录,默认情况在C盘。这里是D盘。

         openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";Filter属性文件过滤器,是对文件进行筛选。这里的话可以看出是对*.txt和*.*进行选择。过滤器前后不允许有空白,如果写成 txt files (*.txt)|*.txt    |All files (*.*)|*.*,则会出现异常。

          openFileDialog1.FilterIndex = 1;表示默认筛选情况。

          openFileDialog1.FileName,FileName属性用来获得打开文件的文件名。获取或设置一个包含在文件对话框中选定的文件名的字符串。

          下面重点介绍一下,OFD的showDialog()方法。原型如下:

    public DialogResult ShowDialog ()

          它显示一个打开文件对话框。返回值是一个枚举类型DialogResult。指定标识符以指示对话框的返回值。对于OFD对话框,如果用户在对话框中单击“确定”,则为DialogResult.OK,否则为DialogResult.Cancel。

          前面说到,ShowReadOnly属性确定是否在对话框中显示只读复选框,ReadOnlyChecked属性指示是否选中只读复选框。加一句 openFileDialog1.ShowReadOnly = true;这是什么效果呢,如下:

         

           总结:使用OFD,首先要创建一个OFD的实例,设置一下这个实例的属性,包括默认的打开路径,文件的筛选,然后再调用ShowDialog()方法,在根据用户的选择来处理相关操作。

           自己对于OFD的一个另类的理解:一个OFD对话框,终极的目标就是为了获得文件的名字,因为有名字就可以进行访问了!

    PS:文件过滤器的文本字符串的构成

    每一部分用“|”来个开,而每一个部分又可以分成2块,中间依旧用“|”来隔开。每一部分的2个块中,第一个快表示的是在下拉列表中显示的文本,第二个块表示是对文件进行的筛选。例如:

    TxT文件|*.txt 则下拉中出现“TxT文件”,而里面是筛选后的"txt"文件。

    DialogResult枚举:

    它定义了Abort,Cancel,Ignore,No,None,OK,Retry,Yes等。

    None是默认值,只要用户没有关闭这个对话框,就设置这个值。根据单击的情况来返回相应的结果,对于OFD只有OK和Cancel。

     FileNames属性之补充:

     前面是打开一个文件的当Multiselect属性设置为true时,可以选中多个文件,则FileNames属性返回的是一个string[]。包含了所选中的文件的名字。

     

             

  • 相关阅读:
    变量按数据类型分类
    构造方法重载 及注意事项
    构造方法-带参
    构造方法-无参
    对对象中的属性赋值(两种方法)
    局部变量的值赋给成员变量 案例(红色字体)
    成员变量与局部变量区别
    创建对象综合案例
    20151015css3 部分css2的内容
    20151012jq4
  • 原文地址:https://www.cnblogs.com/wxhpy7722/p/2153121.html
Copyright © 2011-2022 走看看