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[]。包含了所选中的文件的名字。

     

             

  • 相关阅读:
    ABAP接口用法
    监听textarea数值变化
    The first step in solving any problem is recognizing there is one.
    Wrinkles should merely indicate where smiles have been.
    God made relatives.Thank God we can choose our friends.
    Home is where your heart is
    ABAP跳转屏幕
    Python 工具包 werkzeug 初探
    atom通过remote ftp同步本地文件到远程主机的方法
    Mongodb学习笔记一
  • 原文地址:https://www.cnblogs.com/wxhpy7722/p/2153121.html
Copyright © 2011-2022 走看看