C# WPF上位机开发(文件对话框和目录对话框)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

一个上位机软件在处理数据的时候,除了配置文件、数据文件之外,一般还需要使用选择对话框进行文件和目录的选取。如果不这样做,那么就需要先关闭软件,修改配置文件后再重新打开,这样就不是很方便。不过c# wpf本身已经提供了文件对话框、目录对话框的方案,大家只要学会使用就可以了。

1、文件对话框

使用文件对话框之前,需要需要引用Win32命名空间,

复制代码
using Microsoft.Win32;

引入了命名空间之后,我们就可以接着通过OpenFileDialog这个结构体来进行文件的选择操作。使用之前,一般还需要对OpenFileDialog进行属性设置,比如标题,需要过滤哪些文件。等设置好之后,直接调用它的ShowDialog函数就可以显示出来了。结束之后,如果需要显示相关文件的路径或者名称,那么获取seletedFilePath这个属性就可以了,

复制代码
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Title = "选择文件";
            openFileDialog.Filter = "文本文件|*.txt|所有文件|*.*";

            if (openFileDialog.ShowDialog() == true)
            {
                string selectedFilePath = openFileDialog.FileName;        
                MessageBox.Show($"选择的文件路径: {selectedFilePath}", "文件已选择");
            }

编译后,运行的效果是这样的,

2、目录对话框

和文件对话框相对应的就是目录对话框,很多时候软件操作的不仅是一个文件,而是需要选择一个目录。假设来说,我们需要对一个目录下面的所有文件进行一个批处理的操作,比如这个文件可能是文档doc,又或者是图片bmp等等。再比如,一个项目可能本身就包含了很多的文件类型,那么这个时候加载工程的时候,也只需要加载对应的目录就可以了,而不是一个文件一个文件单独去加载,毕竟这样会琐碎、繁杂很多。

要使用目录对话框,首先需要添加对应的命名空间,

复制代码
using System.Windows.Forms;

选择好了命名空间,接下来就是编写对应的代码。目前,目录对话框用到的结构体是FolderBrowserDialog。同样,使用之前,也需要设置它的一些基本属性,比如说标题。接着等对话框显示并且操作结束以后,就可以通过selectedFolderPath找到对应目录的地址了。

复制代码
            using (FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog())
            {
                folderBrowserDialog.Description = "选择文件夹";
                DialogResult result = folderBrowserDialog.ShowDialog();

                if (result == System.Windows.Forms.DialogResult.OK && !string.IsNullOrWhiteSpace(folderBrowserDialog.SelectedPath))
                {
                    string selectedFolderPath = folderBrowserDialog.SelectedPath;
                    
                    System.Windows.MessageBox.Show($"选择的文件夹路径: {selectedFolderPath}", "文件夹已选择");
                }
            }

编译运行之后,它的效果是这样的,

相关推荐
郝学胜-神的一滴1 分钟前
C++11 工程级应用 09:告别无谓拷贝,解锁高性能移动语义
开发语言·数据结构·c++·vscode·软件工程·visual studio
MC皮蛋侠客1 小时前
OPC UA 系列(一):标准全景与 Python 最小闭环——让第一条设备数据流动起来
开发语言·python·opcua
SamChan901 小时前
PDF翻译后的格式完整性校验:用Python自动比对译文与原文档的表格与段落结构
开发语言·python·ai·pdf·机器翻译
君顾12 小时前
外卖CPS系统开发实战指南:从架构设计到部署全流程解析
java·开发语言·外卖
是立不是利2 小时前
前端交互基石:深入剖析JavaScript三级联动背后的设计哲学
开发语言·前端·javascript
老刘的望远镜2 小时前
AgentScope Java 从零(03):Agent 的记性默认全开,我在第 50 轮翻了车
java·开发语言·javascript
Littlehero_1213 小时前
QT自定义控件之电气接线图(源码开源)
开发语言·qt
中科三方3 小时前
DNS拨测到底在拨测什么?
开发语言·github·php·dns·云拨测
软件黑马王子3 小时前
20.Resources资源加载:基本实现
开发语言·前端框架·c#