Windows 窗体的 OpenFileDialog(打开文件对话框)组件是一个预先配置的对话框。它与 Windows *** 作系统的“打开文件”对话框相同。该控件是从 CommonDialog 类继承的。
在基于 Windows 的应用程序中,可该组件实现简单的文件选择,而不必配置自己的对话框。利用标准的 Windows 对话框,可以创建用户所熟悉的应用程序界面。
OpenFileDialog 组件的主要属性包括:
(1) Title 属性:获取或设置文件对话框标题。默认值为空字符串("")。
如果标题为空字符串,系统将使用默认标题“打开”。
(2) Multiselect 属性:获取或设置一个值,该值指示对话框是否允许选择多个文件。
如果对话框允许同时选定多个文件,则为 true;反之,则为 false。默认值为 false。使用 FileNames 属性可访问选定文件名的完整列表。
(3) ShowReadOnly 属性:获取或设置一个值,该值指示对话框是否包含只读复选框。
如果对话框包含只读复选框,则为 true;否则为 false。默认值为 false。
(4) ReadOnlyChecked 属性:获取或设置一个值,该值指示是否选定只读复选框。
如果选中了只读复选框,则为 true;反之,则为 false。默认值为 false。
(5) Filter 属性:获取或设置当前文件名过滤字符串,该字符串决定对话框的“文件类型”框中出现的选择内容。
对于每个过滤选项,过滤字符串都包含过滤条件说明,后接一垂直线条(|)和过滤模式。不同过滤选项的字符串由垂直线条隔开。例如:
"Text files (txt)|txt|All files ()|"
如果要将多个过滤模式添加到过滤条件中,可用分号将文件类型分隔开,例如:
"Image Files(BMP;JPG;GIF)|BMP;JPG;GIF|All files ()|"
使用 FilterIndex 属性设置第一个显示给用户的过滤选项。
(6) FilterIndex 属性:获取或设置文件对话框中当前选定过滤条件的索引。
默认值为 1。第一个过滤条目的索引值为 1。
(7) FileName 属性:获取或设置一个包含在文件对话框中选定的文件名的字符串。也就是在对话框中选择的文件名,默认值为空字符串("")。
文件名既包含文件路径也包含扩展名。如果未选定文件,将返回空字符串。
(8) FileNames 属性:获取对话框中所有选定文件的文件名。
属性值是一个 String 类型数组。每个文件名都既包含文件路径又包含文件扩展名。如果未选定文件,该方法将返回空数组。
该组件的主要方法包括:
(1) ShowDialog 方法:在运行时显示对话框。
(2) OpenFile 方法:打开用户选定的具有只读权限的文件,该文件由 FileName 属性指定。
使用该方法可从对话框以只读方式快速打开文件。
下面的实例简单介绍了如何使用打开文件对话框(OpenFileDialog)组件来选择文件的编程技术。
具体步骤如下:
(1) 启动Visual Studio 2005,新建一个C# Windows应用程序项目,如下图所示(点击可看大图)。
(2) 在程序设计窗体中添加一个Label控件,设置其Text属性为“您选择的文件:”;再添加一个TextBox控件,保留其默认属性即可;再添加一个Button控件,设置其Text属性为“选择文件”。调整窗体和控件的大小以适合窗口。
(3) 向程序设计窗体中添加一个OpenFileDialog控件,在属性对话框中设置其Filter属性为“所有文件()||文本文件(txt)|txt|WPS文档(wps)|wps|Word文档(doc)|doc”,设置其FileName属性为空字符串。
将 OpenFileDialog 控件添加到窗体后,它会出现在窗体设计器底部的栏中。
(4) 为Button控件(button1)的鼠标单击(Click)事件添加如下代码:
private void button1_Click(object sender, EventArgs e)
{
if (thisopenFileDialog1ShowDialog() == DialogResultOK)
{
thistextBox1Text = thisopenFileDialog1FileName;
}
}
运行实例程序,单击“选择文件”按钮将d出您熟悉的Windows“打开”对话框,选择文件后,文件名显示在窗体的文本框中。
下面的tbDefaultFile是TextBox控件
OpenFileDialog opf = new OpenFileDialog();
if (PathGetDirectoryName(tbDefaultFileText) == null)
{
opfInitialDirectory = PathGetDirectoryName(tbDefaultFileText);
}
else
{
Assembly exe = typeof(Form1)Assembly;
opfInitialDirectory = PathGetDirectoryName(exeLocation);
}
if(opfShowDialog()== DialogResultOK)
{
tbDefaultFileText = opfFileName;
}
string resultFile = "";
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1InitialDirectory = "D:\\Patch";
openFileDialog1Filter = "All files ()||txt files
(txt)|txt";
openFileDialog1FilterIndex = 2;
openFileDialog1RestoreDirectory = true;
if (openFileDialog1ShowDialog() == DialogResultOK)
resultFile = openFileDialog1FileName;
resultFile 就能得到你选中文件的路径
怎样设置OpenFileDialog组件的Filter,使实现一次过滤出多种扩展名的文件??
dlgFilter = "Image
Files(BMP;JPG;GIF)|BMP;JPG;GIF|All files ()|
"
转自:>
这有可能跟你打开文件后的代码有关 , 你在打开后 这个文件的属性就变为了只读属性,你如果再次通过 OpenFileDialog选择这个文件进行 *** 作 就会导致 造成 尝试读取或写入受保护的内存 试试选择其它文件试下
以上就是关于如何使用 OpenFileDialog 组件全部的内容,包括:如何使用 OpenFileDialog 组件、OpenFileDialog 获取文件地址、C#的OpenFileDialog怎么用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)