C# 之 OpenFileDialog的使用
一、打开文件对话框(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、怎样设置C#OpenFileDialog(文件选择窗体)的指定路径、文件格式等属性(设置打开默认路径、文件格式、窗体显示文本)
C#的OpenFileDialog的常用属性设置 1.设置属性 1)设置弹出的指定路径(绝对路径.相等路径) 2)设置标题 3)设置文本格式 2.打开方式1(绝对路径) 2.1) 打开的路径
- Dev 关于用openFileDialog控件上传图片的问题
1. OpenFileDialog控件有以下基本属性 InitialDirectory 对话框的初始目录 Filter 要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.tx ...
- C# winform OpenFileDialog MessageBox
1.弹出窗体选择本地文件-OpenFileDialog OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Tit ...
- OpenFileDialog获取文件名和文件路径问题
OpenFileDialog获取文件名和文件路径问题(转) 转自:http://blog.sina.com.cn/s/blog_7511914e0101cbjn.html System.IO.Path ...
- 使用OpenFileDialog会更改默认程序目录
这个问题可能只有在特定的程序中会发现:当我们在程序中使用相对路径时是依赖于当前目录的.所以在使用类似代码: XElement rootNode = XElement.Load(@"zips/ ...
- OpenFileDialog - 设置 - Filter 笔记
using (OpenFileDialog fileSelectDialog = new OpenFileDialog()) { fileSelectDialog.Multiselect = fals ...
- C#的OpenFileDialog和SaveFileDialog的常见用法(转)
OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.InitialDirectory = ...
- C# OpenFileDialog
OpenFileDialog 用于浏览并打开文件,在Windows Forms中使用,表现为标准的Windows对话框. 实例: 1.新建Windows Form Application 2.添加Op ...
- OpenFileDialog使用方法
OpenFileDialog基本属性 AddExtension 控制是否将扩展名自动添加到文件名上 CheckFileExists 指示用户指定不存在的文件时是否显示警告 CheckPathExist ...
- C# OpenFileDialog和PictrueBox
string resultFile = ""; OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFile ...
随机推荐
- Tomcat安全
一.版本安全 升级当前的tomcat版本为最新稳定版本.故名思议,最新稳定版本就要兼顾最新和稳定这两个概念.一个稳定的版本,是需要时间沉淀的,而最新又是相对于稳定版而言的最新.因此我们一般会选择当前大 ...
- Clone PDB from same CDB
Clone PDB 用途: 1.用于测试,从生产系统clone数据来进行测试 2.诊断性能问题 Clone PDB Using OMF from same CDB 环境信息: DB Version ...
- MATLAB和c#混合编程实现心电图显示软件
[在此处输入文章标题] 由于MATLAB自带的GUI平台设计的界面不是很美观而且设计过程并不是很方便,我们选择了用c#来做软件界面的实现.我们用MATLAB做信号处理封装成函数,把函数编译成dll格式 ...
- 恒天云技术分享系列2 - vlan管理GUI开发
恒天云:http://www.hengtianyun.com/download-show-id-10.html 在OpenStack G版本中quantum网络模式下,horizon提供了基于quan ...
- leetcode@ [87] Scramble String (Dynamic Programming)
Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrin ...
- hdu4123-Bob’s Race(树形dp+rmq+尺取)
题意:Bob想要开一个运动会,有n个房子和n-1条路(一棵树),Bob希望每个人都从不同的房子开始跑,要求跑的尽可能远,而且每条路只能走最多一次.Bob希望所有人跑的距离的极差不大于q,如果起点的编号 ...
- 使用Intent在活动之间穿梭(《第一行代码》读书笔记)
以下全是个人理解//瞎扯 其实活动理解理解起来就像一个个函数 那么Intent就是调用函数和参数传递 可以有无参,仅仅是调用 Intent intent = new Intent(A.this, B. ...
- Hadoop,HBase,Zookeeper源码编译并导入eclipse
基本理念:尽可能的参考官方英文文档 Hadoop: http://wiki.apache.org/hadoop/FrontPage HBase: http://hbase.apache.org/b ...
- A Tour of Go Switch
You probably knew what switch was going to look like. A case body breaks automatically, unless it en ...
- [OC Foundation框架 - 8] NSArray排序
1.派生 voidarrayNew() { NSArray*array = [NSArrayarrayWithObjects:",nil]; NSArray*array2 = [arraya ...