string resultFile = "";

OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.InitialDirectory = "D:\\Patch";
            openFileDialog1.Filter = "All files (*.*)|*.*|txt files (*.txt)|*.txt";
            openFileDialog1.FilterIndex = 2;
            openFileDialog1.RestoreDirectory = true;
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
                resultFile = openFileDialog1.FileName;

resultFile 就能得到你选中文件的路径
 怎样设置OpenFileDialog组件的Filter,使实现一次过滤出多种扩展名的文件??

dlg.Filter   =   "Image   Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All   files   (*.*)|*.* "

转自:http://www.cnblogs.com/HF06995000/archive/2011/2/22.html

一、打开文件对话框(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("");
}
}

路径的返回用filename是字符串类型

如:openFileDialog1.ShowDialog();
            _name1= openFileDialog1.FileName;
            Image imge = Image.FromFile(_name1);

3、 获取对话框的文件名

openfiledialog.FileName                  //获取或设置一个包含在文件对话框中选定的文件名字符串openfiledialog.SafeFileName           //获取选定对话框中的文件名和扩展名

4、例子:
 
OpenFileDialog Open1 = new OpenFileDialog();
Open1.Filter = "图片文件(*.jpg,*.gif,*.bmp)|*.jpg|*.gif|*.bmp";
 说明:
‘|’分割的两个,一个是注释,一个是真的Filter,显示出来的是那个注释。你实际上应该选出了jpg和bmp。
如果要一次显示多中类型的文件,用分号分开
Open1.Filter="图片文件(*.jpg,*.gif,*.bmp)|*.jpg;*.gif;*.bmp";

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

  1. C# openfiledialog对文本框的操作//C#中OpenFileDialog的使用

    在WebForm中提供了FileUpload控件来供我们选择本地文件,只要我们将该控件拖到页面上了,就已经有了选择本地文件的功能了.而在WinForm中,并没有为我们提供集成该功能的控件,但为我们提供 ...

  2. .NET中OpenFileDialog使用报线程错误的解决方法

    昨天,在做一个NPOI读取的小demo的时候,使用OpenFileDialog打开文件,最开始的写法,直接在按钮点击事件中写,会报错,代码如下: OpenFileDialog ofd = new Op ...

  3. C#的Winform中OpenFileDialog对话框Filter属性设置包含特定字符,使用正则表达式

    OpenFileDialog对话框的Filter属性说明: 首先观察Filter属性的组成部分:“Word文件|*.doc ”,前面的“Word文件”成为标签,是一个可读的字符串,可以自定定义,“|* ...

  4. Win7下多线程中OpenFileDialog和SaveFileDialog失效的解决办法(转载)

    在程序中,通常会使用独立线程来操作OpenFileDialog或者SaveFileDialog控件,但是在某些情况下(Win7系统下)调用 ShowDialog方法并不显示选择路径对话框.此时需要对启 ...

  5. winfrom中pictureBox控件的部分使用方法

    一.后台属性 1.pictureBox1.Image显示图片 2.pictureBox1.ImageLocation存储和提取图片路径 二.面板属性 1.Picturebox控件SizeMode属性 ...

  6. SqlBulkCoy和普通数据库操作执行速度对比

    SQLBulkCopy,用于数据库之间大批量的数据传递.通常用于新,旧数据库之间数据的更新.即使表结构完全不同,也可以通过字段间的对应关系,顺利的将数据导过来. 1.初始化SqlBulkCopy对象, ...

  7. 将 Excel 数据导入 MySql

    能承受上万数据量,速度快,并且使用了事务,不会出现某条数据错误而导致部分数据插入(要是全部成功要是一条都不成功,测试过程中没出现失败),需要的朋友可以参考下 1.NPOI 2.MySql.Data 这 ...

  8. C#桌面程序设计复习

    GGG //屏幕高度 int ScreenH = 1080; this.Location = new Point(this.Location.X, ScreenH - this.Height - 20 ...

  9. winfrom 操作Excel

    利用Aspose.Cells.dll 操作Excel,内容如下: 1.界面设计: 2.逻辑: using System; using System.Collections.Generic; using ...

随机推荐

  1. 动态链接库找不到 : error while loading shared libraries: libgsl.so.0: cannot open shared object file: No such file or directory

    问题: 运行gsl(GNU scientific Library)的函数库,用 gcc erf.c -I/usr/local/include -L/usr/local/lib64 -L/usr/loc ...

  2. NHibernate多对多关联映射的实现

    上次用EF演示了数据库多对多关系的操作,这次我们还是引用上次的案例,来演示如何在C#当中使用NHibernate. 首先介绍一下NHibernate框架的来源.熟悉Java编程的读者肯定知道Hiber ...

  3. C#多线程(一)

    一.定义与理解 1.定义 线程是操作系统分配CPU时间片的基本单位,每个运行的引用程序为一个进程,这个进程可以包含一个或多个线程. 线程是进程中的执行流程,每个线程可以得到一小段程序的执行时间,在单核 ...

  4. numpy+scipy+matlotlib+scikit-learn的安装及问题解决

    NumPy(Numeric Python)系统是Python的一种开源的数值计算扩展,一个用python实现的科学计算包.它提供了许多高级的数值编程工具,如:矩阵数据类型.矢量处理,以及精密的运算库. ...

  5. Java集合Map接口与Map.Entry学习

    Java集合Map接口与Map.Entry学习 Map接口不是Collection接口的继承.Map接口用于维护键/值对(key/value pairs).该接口描述了从不重复的键到值的映射. (1) ...

  6. 2.MVC框架开发(视图开发----基础语法)

    1.区别普通的html,在普通的html中不能将控制器里面的数据展示在html中. 在MVC框架中,它提供了一种视图模板(就是结合普通的html标签并能将控制器里传出来的数据进行显示) 视图模板特性: ...

  7. Docker容器中运行ASP.NET Core

    在Linux和Windows的Docker容器中运行ASP.NET Core 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott Hanselman就捷足先登了. ...

  8. css 垂直同步的几种方式

    第一种: 利用 display:table 和 display:table-cell 的方式 这种方式就好像将table布局搬过来一样,相信大家对table的td还是有印象的,它的内容是可以设置垂直居 ...

  9. poj 3373 Changing Digits (DFS + 记忆化剪枝+鸽巢原理思想)

    http://poj.org/problem?id=3373 Changing Digits Time Limit: 3000MS   Memory Limit: 65536K Total Submi ...

  10. yum安装软件时提示软件包没有签名

    yum install [XXX] -y --nogpgcheck