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

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

2、 OpenFileDialog控件有以下常用事件
  [1]FileOk 当用户点击"打开"或"保存"按钮时要处理的事件
  [2]HelpRequest 当用户点击"帮助"按钮时要处理的事件

  

3、可以用以下代码来实现上面这个对话框:

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

二、OpenFileDialog 类的ShowDialog() 错误的解决

错误信息:在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器附加到该进程才会引发此异常。

  在测试程序里没有问题,当移到多线程程序里就报以上错误。解决办法就是添加单独线程,代码如下:

        private Thread invokeThread;

        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = patch;
openFileDialog1.Filter = "xls files (*.xls)|*.xls"; invokeThread = new Thread(new ThreadStart(InvokeMethod));
invokeThread.SetApartmentState(ApartmentState.STA);
invokeThread.Start();
invokeThread.Join(); if (result == DialogResult.OK)
{
if (openFileDialog1.FileName != "")
{
Process.Start(openFileDialog1.FileName);
}
}
} private void InvokeMethod()
{
result = openFileDialog1.ShowDialog();
}

C# 之 OpenFileDialog的使用的更多相关文章

  1. 1、怎样设置C#OpenFileDialog(文件选择窗体)的指定路径、文件格式等属性(设置打开默认路径、文件格式、窗体显示文本)

    C#的OpenFileDialog的常用属性设置 1.设置属性 1)设置弹出的指定路径(绝对路径.相等路径) 2)设置标题 3)设置文本格式 2.打开方式1(绝对路径) 2.1) 打开的路径

  2. Dev 关于用openFileDialog控件上传图片的问题

    1. OpenFileDialog控件有以下基本属性 InitialDirectory 对话框的初始目录 Filter 要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.tx ...

  3. C# winform OpenFileDialog MessageBox

    1.弹出窗体选择本地文件-OpenFileDialog OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Tit ...

  4. OpenFileDialog获取文件名和文件路径问题

    OpenFileDialog获取文件名和文件路径问题(转) 转自:http://blog.sina.com.cn/s/blog_7511914e0101cbjn.html System.IO.Path ...

  5. 使用OpenFileDialog会更改默认程序目录

    这个问题可能只有在特定的程序中会发现:当我们在程序中使用相对路径时是依赖于当前目录的.所以在使用类似代码: XElement rootNode = XElement.Load(@"zips/ ...

  6. OpenFileDialog - 设置 - Filter 笔记

    using (OpenFileDialog fileSelectDialog = new OpenFileDialog()) { fileSelectDialog.Multiselect = fals ...

  7. C#的OpenFileDialog和SaveFileDialog的常见用法(转)

    OpenFileDialog openFileDialog1 = new OpenFileDialog();            openFileDialog1.InitialDirectory = ...

  8. C# OpenFileDialog

    OpenFileDialog 用于浏览并打开文件,在Windows Forms中使用,表现为标准的Windows对话框. 实例: 1.新建Windows Form Application 2.添加Op ...

  9. OpenFileDialog使用方法

    OpenFileDialog基本属性 AddExtension 控制是否将扩展名自动添加到文件名上 CheckFileExists 指示用户指定不存在的文件时是否显示警告 CheckPathExist ...

  10. C# OpenFileDialog和PictrueBox

     string resultFile = ""; OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFile ...

随机推荐

  1. java vm args

    这个问题主要还是由这个问题 java.lang.OutOfMemoryError: Java heap space 引起的.第一次出现这样的的问题以后,引发了其他的问题.在网上一查可能是JAVA的堆栈 ...

  2. POJ 1017 Packets

    题意:有一些1×1, 2×2, 3×3, 4×4, 5×5, 6×6的货物,每个货物高度为h,把货物打包,每个包裹里可以装6×6×h,问最少几个包裹. 解法:6×6的直接放进去,5×5的空隙可以用1× ...

  3. [King.yue]Ext中Grid得到选择行数据的方法总结

    (1)grid.getStore().getRange(0,store.getCount());    //得到grid所有的行 (2)grid.getSelectionModel().getSele ...

  4. k-近邻分类的Python实现

    参见<机器学习实战> # -*- coding:cp936 -*- #=========================================================== ...

  5. 使用SVN服务器管理源码

    最近在学习使用SVN管理自己的项目文件,正好有好的文章就拿来标记一下,正所谓: 站在巨人的肩膀上   天下知识为我所用 转载两篇关于使用SVN管理源码的文章. 使用SVN进行源码管理(上):http: ...

  6. Enterprise Suse运维

    1,Suse CDH4安装 wget archive.cloudera.com/cdh4/one-click-install/redhat/6/x86_64/cloudera-cdh-4-0.x86_ ...

  7. POJ 3764 (异或+字典树)

    早就听过用字典树求异或最大值,然而没做过.发现一碰到异或的题就GG,而且因为以前做过的一道类似的题(事实上并不类似)限制了思路,蠢啊= =. 题意:一棵带权的树,求任意两点间路径异或的最大值. 题解: ...

  8. Python Django manage.py提供的命令及用法

    λpython manage.pyType'manage.py help <subcommand>'for help on a specific subcommand. Available ...

  9. Datatable的Select()方法简介

    DataTable是我们在进行开发时经常用到的一个类,并且经常需要对DataTable中的数据进行筛选等操作,下面就介绍一下Datatable中经常用到的一个方法——Select,微软提供了四个函数的 ...

  10. OpenCV训练分类器制作xml文档

    OpenCV训练分类器制作xml文档 (2011-08-25 15:50:06) 转载▼ 标签: 杂谈 分类: 学习 我的问题:有了opencv自带的那些xml人脸检测文档,我们就可以用cvLoad( ...