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

news2025/1/20 13:33:42

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱: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}", "文件夹已选择");
                }
            }

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1330817.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Oracle的学习心得和知识总结(三十一)| ODBC开放式数据库连接概述及应用程序开发

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《Oracle Database SQL Language Reference》 2、参考书籍:《PostgreSQL中文手册》 3、EDB Postgres Advanced Server User Gui…

不忍学弟学妹受苦受难!!!逐一讲解发动机原理实验报告(1)

固体火箭发动机侵蚀燃烧测试实验 经过了愉快迷糊——哦不瑟瑟发抖——哦不痛不欲生的两天,终于和小伙伴们协力完成了西北工业大学航天学院发动机原理实验报告。具体的实验指导书均可在本人博客资源站下载。 固体火箭发动机侵蚀燃烧测试实验,嗯哼—— 实…

Python脚本打包成exe文件

我们很多时候写好一个python脚本之后,想要发给朋友,可是朋友没有安装python怎么办呢?别急,今天我就教你如何将python脚本打包成exe可执行文件,这样无论你的朋友有没有安装python,都可以运行你写好的程序&am…

ebay倒计时活动攻略,ebay倒计时活动怎么做的?——站斧浏览器

ebay倒计时活动攻略 在ebay上做倒计时活动时,可以参考以下攻略: 制定合理的ebay优惠方案。可以根据消费者的需求和购买习惯,制定不同的优惠方案,例如满减、折扣、赠品等。同时,要保证优惠方案的真实性和公平性&#…

Pushmall共享电商2023年 十二月模块开发优化完成

Pushmall共享电商2023年 十二月模块开发优化完成 十一月模块开发优化完成 智能名片功能开发计划完成 1、搜索查询:个人信息与公司信息标签。搜索查询:对接腾讯位置服务。 2、熟人地图:根据就近资源推荐,多少公里范围的人脉推荐 …

山西电力市场日前价格预测【2023-12-24】

日前价格预测 预测说明: 如上图所示,预测明日(2023-12-24)山西电力市场全天平均日前电价为324.41元/MWh。其中,最高日前电价为456.41元/MWh,预计出现在18:00。最低日前电价为0.00元/MWh,预计出…

MyBatis-Plus(一):根据指定字段更新或插入

根据指定字段更新或插入 1、概述2、实现方式2、总结 1、概述 MyBatis-Plus中提供了一个saveOrUpdate()方法,默认情况下可以根据主键是否存在进行更新或插入操作,但是实际场景中,根据指定字段进行更新或插入的情况也非常多见,今天…

推荐给前端开发的 5 款 Chrome 扩展

工欲善其事,必先利其器。Chrome 可能是前端开发中使用最多的浏览器。在日常开发中,下列几款 Chrome 扩展也许能让你的开发工作事半功倍 🚀 Vue.js devtools ⚙️ vue 官方专为 vue 应用开发的调试工具。 通过使用它,你可以快速查看…

系列八、VMWare无法启动CentOS7问题排查 解决

一、VMWare无法启动CentOS7 1.1、问题描述 今天在测试代码的时候,需要用到Linux,然后就打开VMWare进行启动,但是启动的时候发现无法启动起来,报了一个如下的错误: 出现了问题那就要解决问题,然后想起来前几…

机器学习高级实践

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 前言 在当今科技飞速发展的时代,机…

MySQL创建member表失败

最近在做一个项目,在台式机上可以跑通,也测试了各个已完成的接口,提交到了GitHub后想着用宿舍的电脑跑一下,在测试member表相关接口时就出错了。报了SQL语法错误,但SQL语句很简单,就根据手机号查询不至于出…

抖店定好品类赛道之后,怎么选品和快速出单?相关教程分享如下!

我是王路飞。 之前分享抖店流程相关内容时,我说过,类目选择大于一切,且要优于、重于选品。 至于定类目的标准,我之前也给你们说过,不要以自己个人喜好为标准去判断市场,也不要凭借自己以往认知和经验确定…

负载电容对晶振频率稳定性的影响

在电子系统中,晶振是产生精确频率的关键元件,而负载电容是影响晶振频率稳定性的重要因素之一。本文将深入探讨负载电容对晶振频率稳定性的影响,并分析如何通过合理的选择和设计来减小这种影响。 一、负载电容对晶振频率稳定性的影响 负载电…

openai最新探索:超级对齐是否可行?

前言 今天来介绍一篇openai最新的paper:弱到强的对齐。 openai专门成立了一个团队来做大模型的超级对齐即superhuman model,之前chatgpt取得成功依赖RLHF即依赖人类反馈,但是作者期望的superhuman model将会是一个能够处理各种复杂问题的强…

Nacos单机安装

采用的版本是Nacos Release 2.3.0 (Nov 30, 2023) alibaba/nacos GitHub 依赖于jdk,要先安装好jdk1.8。 修改配置 下载解压后,修改配置文件:conf/application.properties。 nacos.core.auth.plugin.nacos.token.secret.key 官方文档Na…

Android EditText代码设置不可编辑不可输入

XML布局中设置 直接设置android:editable"false",虽然说该属性已经废弃,但是还是可以生效 但是EditText中没有对应的setEditable之类的方法来通过代码设置不可编辑 其他方式,通过设置focusable和focusableInTouchMode为false &l…

基于java的病房管理系统论文

摘 要 当下,如果还依然使用纸质文档来记录并且管理相关信息,可能会出现很多问题,比如原始文件的丢失,因为采用纸质文档,很容易受潮或者怕火,不容易备份,需要花费大量的人员和资金来管理用纸质文…

C语言中二维数组的存储和二进制数在底层的排列顺序

1 二维数组变量的存储 二维数组在内存中是按照先行后列的顺序存储的,即先存储第一行的所有元素,再存储第二行的所有元素,以此类推。每个元素在内存中占据一定的字节数,这个字节数由该元素的类型决定。例如,int类型的元…

Zabbix和Prometheus之间的优势

一、简介 1、Prometheus Kubernetes 自从 2012 年开源以来便以不可阻挡之势成为容器领域调度和编排的领头羊。 Kubernetes 是 Google Borg 系统的开源实现,于此对应 Prometheus 则是 Google BorgMon 的开源实现。 Prometheus 是由 SoundCloud 开发的开源监控报警…

Stable Diffusion系列(三):网络分类与选择

文章目录 网络分类模型基座模型衍生模型二次元模型2.5D模型写实风格模型 名称解读 VAELora嵌入文件放置界面使用 网络分类 当使用SD webui绘图时,为了提升绘图质量,可以多种网络混合使用,可选的网络包括了模型、VAE、超网络、Lora和嵌入。 …