C#中openFileDialog控件的使用方法

 更新时间:2024年11月05日 10:24:59   作者:wenchm  
在C#中,OpenFileDialog控件用于创建一个打开文件对话框,允许用户选择文件,OpenFileDialog提供了一种简单的方式来让用户选择一个或多个文件,并获取用户所选文件的路径,本文给大家详细介绍了C#中openFileDialog控件的使用方法,需要的朋友可以参考下

介绍

在C#中,OpenFileDialog控件用于创建一个打开文件对话框,允许用户选择文件。OpenFileDialog提供了一种简单的方式来让用户选择一个或多个文件,并获取用户所选文件的路径。

OpenFileDialog是打开文件对话框的意思,即在窗体设计中,如果需要打开本地文件,就需要用到该类。

一、OpenFileDialog基本属性

属性说明
InitialDirectory对话框的初始目录
Filter获取或设置当前文件名筛选器字符串,例如,“文本文件(.txt)|.txt|所有文件(.)||.”
FilterIndex在对话框中选择的文件筛选器的索引,如果选第一项就设为1
RestoreDirectory控制对话框在关闭之前是否恢复当前目录
FileName:第一个在对话框中显示的文件或最后一个选取的文件
Title将显示在对话框标题栏中的字符
AddExtension是否自动添加默认扩展名
CheckPathExists在对话框返回之前,检查指定路径是否存在
DefaultExt默认扩展名
DereferenceLinks在从对话框返回前是否取消引用快捷方式
ShowHelp启用"帮助"按钮
ValiDateNames控制对话框检查文件名中是否不含有无效的字符或序列

二、使用 OpenFile 从筛选的选择中打开文件

1.示例源码

//使用 OpenFile 从筛选的选择中打开文件
using System.Diagnostics;
using System.Security;
 
namespace WinFormsApp1
{
    public partial class OpenFileDialogForm : Form
    {
        private readonly Button selectButton;
        private readonly OpenFileDialog openFileDialog1;
 
        public OpenFileDialogForm()
        {
            InitializeComponent();
 
            //新建openFileDialog控件
            openFileDialog1 = new OpenFileDialog()
            {
                FileName = "Select a text file",      //OpenFileDialog窗体提示
                Filter = "Text files (*.txt)|*.txt",  //选择什么扩展名类型的文件
                Title = "Open text file"              //OpenFileDialog窗体的抬头
            };
 
            //新建按钮及点击事件
            selectButton = new Button()
            {
                Size = new Size(100, 20),
                Location = new Point(15, 15),
                Text = "Select file"
            };
            selectButton.Click += new EventHandler(SelectButton_Click);
            Controls.Add(selectButton);
        }
 
        /// <summary>
        /// 按钮点击事件应用
        /// 使用 Button 控件的 Click 事件处理程序打开包含仅显示文本文件的筛选器的 OpenFileDialog。 
        /// 用户选择文本文件并选择“确定”后,可用 OpenFile 方法在记事本中打开该文件
        /// </summary>
        private void SelectButton_Click(object? sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    var filePath = openFileDialog1.FileName;
                    using Stream str = openFileDialog1.OpenFile();
                    Process.Start("notepad.exe", filePath);
                }
                catch (SecurityException ex)
                {
                    MessageBox.Show($"Security error.\n\nError message: {ex.Message}\n\n" +
                    $"Details:\n\n{ex.StackTrace}");
                }
            }
        }
    }
}

2.生成效果

三、使用 StreamReader 以流的形式读取文件

1.示例源码

//使用 StreamReader 以流的形式读取文件
using System.Security;
namespace _05_3
{
    public partial class Form1 : Form
    {
        private readonly Button selectButton;
        private readonly OpenFileDialog openFileDialog1;
        private readonly TextBox textBox1;
 
        public Form1()
        {
            InitializeComponent();
 
            //创建OpenFileDialog控件openFileDialog1
            openFileDialog1 = new OpenFileDialog();
 
            //创建按钮控件selectButton及添加点击事件
            selectButton = new Button
            {
                Size = new Size(100, 20),
                Location = new Point(15, 15),
                Text = "Select file"
            };
            selectButton.Click += new EventHandler(SelectButton_Click);
 
            //创建文本框控件textBox1
            textBox1 = new TextBox
            {
                Size = new Size(300, 300),
                Location = new Point(15, 40),
                Multiline = true,
                ScrollBars = ScrollBars.Vertical
            };
 
            //设置Form1表格大小
            ClientSize = new Size(330, 360);
 
            Controls.Add(selectButton);
            Controls.Add(textBox1);
        }
 
        //自定义方法
        private void SetText(string text)
        {
            textBox1.Text = text;
        }
 
        /// <summary>
        /// 使用 StreamReader 以流的形式读取文件
        /// 使用 Windows 窗体 Button 控件的 Click 事件处理程序通过 ShowDialog 方法打开 OpenFileDialog。
        /// 用户选择一个文件并选择“确定”后,StreamReader 类的实例将读取该文件,并在窗体的文本框中显示文件内容。
        /// </summary>
        private void SelectButton_Click(object? sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    var sr = new StreamReader(openFileDialog1.FileName);
                    SetText(sr.ReadToEnd());
                }
                catch (SecurityException ex)
                {
                    MessageBox.Show($"Security error.\n\nError message: {ex.Message}\n\n" +
                    $"Details:\n\n{ex.StackTrace}");
                }
            }
        }
    }
}

2.生成效果

四、一种新颖的Windows窗体应用文件设计方法

这两个示例使用了一种Windows窗体应用文件新的设计方法,不设计Form1.cs[设计]。所有试图、控件都通过编程实现。是不是很新颖呢?你更喜欢哪一种设计方法呢?

到此这篇关于C#中openFileDialog控件的使用方法的文章就介绍到这了,更多相关C# openFileDialog控件使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C# 中对象序列化XML的方法

    C# 中对象序列化XML的方法

    这篇文章主要介绍了C# 中对象序列化XML的方法,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • 利用C#实现Word文档多维度信息统计

    利用C#实现Word文档多维度信息统计

    在文档处理场景中,自动化统计Word文档的字数、字符数、段落数、行数和页数是常见的需求,下面我们就来看看如何使用C#实现统计Word文档多维度信息吧
    2025-07-07
  • C#使用dir命令实现文件搜索功能示例

    C#使用dir命令实现文件搜索功能示例

    这篇文章主要介绍了C#使用dir命令实现文件搜索功能,结合具体实例形式分析了C#调用与使用cmd命令相关操作技巧,需要的朋友可以参考下
    2017-07-07
  • C# wx获取token的基本方法

    C# wx获取token的基本方法

    这篇文章主要为大家详细介绍了C# wx获取token的基本方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • C#检测远程计算机端口是否打开的方法

    C#检测远程计算机端口是否打开的方法

    这篇文章主要介绍了C#检测远程计算机端口是否打开的方法,实例分析了C#实现检测远程端口开启的技巧,需要的朋友可以参考下
    2015-03-03
  • C#中数组Array,ArrayList,泛型List详细对比

    C#中数组Array,ArrayList,泛型List详细对比

    关于数组Array,ArrayList,泛型List,简单的说数组就是值对象,它存储数据元素类型的值的一系列位置.Arraylist和list可以提供添加,删除,等操作的数据. 具体如何进行选择使用呢,我们来详细探讨下
    2016-06-06
  • WPF实现在线预览和显示Word和PDF文件

    WPF实现在线预览和显示Word和PDF文件

    这篇文章主要为大家详细介绍了如何使用WPF实现在线预览和显示Word和PDF文件,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-02-02
  • C#通过KD树进行距离最近点的查找

    C#通过KD树进行距离最近点的查找

    这篇文章主要为大家详细介绍了C#通过KD树进行距离最近点的查找,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • C#自动化生成PowerPoint(PPT)演示文稿

    C#自动化生成PowerPoint(PPT)演示文稿

    在当今快节奏的商业环境中,演示文稿是信息传递和沟通的关键工具,下面我们就深入探讨如何利用C#和 Spire.Presentation for .NET实现从零开始创建,编辑和保存PowerPoint演示文稿吧
    2025-11-11
  • C# 获取指定格式时间字符串的方法汇总

    C# 获取指定格式时间字符串的方法汇总

    本文介绍了在C#中获取指定格式时间字符串的几种方法,包括使用`DateTime.ToString()`方法、`String.Format`或字符串插值、`DateTimeOffset`(带时区信息),并详细说明了常用格式模式和文化相关格式化,感兴趣的朋友跟随小编一起看看吧
    2025-11-11

最新评论