【31】C# WinForm入门到精通 ——保存文件SaveFileDialog 【属性、方法、事件、实例、源码】

  • WinForm 是 Windows Form 的简称,是基于 .NET Framework 平台的客户端(PC软件)开发技术,是 C# 语言中的一个重要应用。

  • .NET 提供了大量 Windows 风格的控件和事件,可以直接拿来使用。

  • 本专栏内容按照标题序号逐渐深入的,如有不懂的基础问题,可看前面教程

  • 在介绍属性的时候,会展示一些用法、代码、实例、截图这样看起来更清晰,免得直接看最后综合实例会有些懵

文章目录

  • 1 保存文件SaveFileDialog——属性
    • 1.1 Name
    • 1.2 AddExtension、DefaultExt
    • 1.3 CheckFileExists 、CheckPathExists
    • 1.4 CreatePrompt
    • 1.5 DereferenceLinks、DereferenceLinks、FileNames
    • 1.6 Filter
    • 1.7 Filterlndex
    • 1.8 InitialDirectory
    • 1.9 ShowHelp
    • 1.10 Tag
    • 1.11 Title
    • 1.12 ValidateNames
  • 2 事件
    • 2.1 HelpRequest
    • 2.2 Fileok
  • 3 实例:打开/保存文件

1 保存文件SaveFileDialog——属性

文件对话框(FileDialog)主要包括文件浏览对话框,以及用于查找、打开、保存文件的功能,与 Windows 中的文件对话框类似。

  • 保存文件对话框控件用于,需要用户保存文件时可以设置文件的文件名、设置文件的保存路径。

属性:
在这里插入图片描述

1.1 Name

获取控件的对象

1.2 AddExtension、DefaultExt

  • AddExtension该属性用于SaveFileDialog保存文件时,如果没有为文件添加后缀,则自动为保存的文件添加一个后缀,这个后缀是由DefaultExt属性决定的,比如DefaultExt的值为txt;

  • DefaultExtAddExtension一起配合使用,当保存文件时没有输入文件后缀时,自动添加的后缀;

        private void button1_Click(object sender, EventArgs e){saveFileDialog1.DefaultExt = "txt";saveFileDialog1.ShowDialog();//打开文件保存对话框textBox1.Text =  saveFileDialog1.FileName;//将文件名显示在  textBox1中}

在这里插入图片描述
在这里插入图片描述
可以看到123已经变成了123.txt,这是因为我们设置了DefaultExt为txt类型

1.3 CheckFileExists 、CheckPathExists

  • CheckFileExists 在SaveFileDialog没什么作用
  • CheckPathExists 在SaveFileDialog没什么作用

1.4 CreatePrompt

该属性为true时,并且ValidateNames为true时,当保存的文件不存在时,是否弹窗提示。
在这里插入图片描述

1.5 DereferenceLinks、DereferenceLinks、FileNames

  • DereferenceLinks 该属性对于SaveFileDialog无效
  • FileName 该属性用于获取我们在打开“SaveFileDialog中”输入的文件名 (单个文件)
  • FileNames 该属性在SaveFileDialog没有作用

1.6 Filter

该属性用于指定保存的文件是什么类型,如下代码:

        private void button1_Click(object sender, EventArgs e){saveFileDialog1.ValidateNames = true;saveFileDialog1.CreatePrompt = true;//saveFileDialog1.DefaultExt = "txt";saveFileDialog1.Filter = "csv文件|*.csv";//指定后缀名为.csv,if (saveFileDialog1.ShowDialog() == DialogResult.OK){string fileNamew = saveFileDialog1.FileName;textBox1.Text = fileNamew;//将文件名显示在  textBox1中}}

在这里插入图片描述

注意与DefaultExt区别

在这里插入图片描述

1.7 Filterlndex

该属性用于指定在有多个类型的文件时,指定SaveFileDialog对话打开以后,显示的默认保存是哪个类型的文件,

比如下面的代码中,共指定了CSV文件、x文件,并且CSV文件对应的Fiterlindex 就是1,txt文件对应的Filterindex 就是2,

原则就是从左到有数,Eilterlndex的值从1、2、3、依次加1。当设置Filterlndex 的值为2的时候,效果如下图:
在这里插入图片描述

1.8 InitialDirectory

设置保存文件的路径,代码如下:

        private void button1_Click(object sender, EventArgs e){saveFileDialog1.ValidateNames = true;saveFileDialog1.CreatePrompt = true;saveFileDialog1.InitialDirectory = @"E:\Programming_test\Images";//设置指定保存路径//文件后缀名saveFileDialog1.DefaultExt = "txt";saveFileDialog1.Filter = "csv文件|*.csv|txt文件|*.txt";saveFileDialog1.FilterIndex = 2; //指定为2,对应的.txtif (saveFileDialog1.ShowDialog() == DialogResult.OK){string fileNamew = saveFileDialog1.FileName;textBox1.Text = fileNamew;//将保存路径、文件名显示在textBox1中}}

点击保存文件按钮
保存文件对话框 直接打开到 程序中设定的路径 E:\Programming_test\Images
且后缀名 指定为FilterIndex = 2,对应的.txt
在这里插入图片描述

1.9 ShowHelp

该属性设置为true时,下图中会出现一个"帮助”按钮,我们可以在HelpRequest事件中加上一些,当我们点击“帮助“按钮以后的各种事件处理

在这里插入图片描述
在这里插入图片描述

1.10 Tag

绑定数据

1.11 Title

该属性用于设置保存对话框的标题,效果如下
在这里插入图片描述

1.12 ValidateNames

该属性和CreatePrompt 属性结合使用

2 事件

2.1 HelpRequest

该事件用于用户点击“帮助”按钮触发

2.2 Fileok

当用户点击“保存“按钮以后触发,一般不使用该事件,而是使用ShowDialog方法,然后根据该方法返回的结果来判断保存文件是否成功。

3 实例:打开/保存文件

  • 保存按钮:将文本框内容保存到.txt文件里;
  • 打开按钮:将.txt文件内容显示到文本框里;

在窗体中添加openFileDialog和saveFileDialog控件。
在这里插入图片描述

  • 保存按钮:将文本框内容保存到.txt文件里;
  • 打开按钮:将.txt文件内容显示到文本框里;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace WinFormTest2
{public partial class Form5 : Form{public Form5(){InitializeComponent();}//保存文件private void button1_Click(object sender, EventArgs e){saveFileDialog1.ValidateNames = true;saveFileDialog1.CreatePrompt = true;saveFileDialog1.InitialDirectory = @"E:\Programming_test";//设置指定保存路径//文件后缀名saveFileDialog1.DefaultExt = "txt";saveFileDialog1.Filter = "csv文件|*.csv|txt文件|*.txt";saveFileDialog1.FilterIndex = 2; //指定为2,对应的.txtDialogResult dr = saveFileDialog1.ShowDialog();//获取所打开文件的文件名string filename = saveFileDialog1.FileName;if (dr == DialogResult.OK && !string.IsNullOrEmpty(filename)){StreamWriter sw = new StreamWriter(filename, true, Encoding.UTF8); // StreamWriter()定义在System.IO中sw.Write(textBox1.Text);//将textBox1 文本内容写到文件里sw.Close();}}//打开文件private void button2_Click(object sender, EventArgs e){DialogResult dr = openFileDialog1.ShowDialog();//获取所打开文件的文件名string filename = openFileDialog1.FileName;if (dr == DialogResult.OK && !string.IsNullOrEmpty(filename)){StreamReader sr = new StreamReader(filename); // StreamReader()定义在System.IO中,添加命名空间using System.IO;textBox1.Text = sr.ReadToEnd();//将文本内容读取显示到textBox1 sr.Close();}}}
}
  • 第一次保存 123.txt不存在,创建并保存

在这里插入图片描述

继续追加保存
在这里插入图片描述
查看123.txt文本内容
在这里插入图片描述

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

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

相关文章

socket网络编程(1)

socket网络编程(1) 设计echo server进行接口使用 生成的Makefile文件如下 .PHONY:all all:udpclient udpserverudpclient:UdpClient.ccg -o $ $^ -stdc17 -static udpserver:UdpServer.ccg -o $ $^ -stdc17.PHONY:clean clean:rm -f udpclient udpserver…

数据集:机器学习的基石

三、数据集:机器学习的基石1. sklearn 玩具数据集:快速入门的理想选择1.1 玩具数据集的特点与价值sklearn 内置的玩具数据集(Toy Datasets)是机器学习入门的绝佳资源。这类数据集通常具有以下特点:数据量小&#xff1a…

SQL排查、分析海量数据以及锁机制

1. SQL排查 1.1 慢查询日志: mysql提供的一种日志记录, 用户记录MySQL中响应时间超过阈值的SQL语句(long_query_time, 默认10秒), 慢查询日志默认是关闭的, 建议开发调优时打开, 最终部署的时候关闭 1.1.1 检查是否开启了慢查询日志 show variables like %slow_query_log%;临…

conda 安装prokka教程

本章教程,记录如何在wsl2+ubuntu下载通过conda安装prokka软件包。 Prokka 是一个快速的、功能强大的基因组注释工具,特别适用于细菌基因组的注释。它能够自动化完成从基因组序列到功能注释的整个流程,包括基因的识别、功能预测和注释,并且支持多种文件格式输出,广泛应用于…

CSS3 圆角

CSS3 圆角 引言 CSS3圆角是现代网页设计中非常重要的一项功能,它使得网页元素的外观更加平滑、美观。本文将详细介绍CSS3圆角的概念、实现方法以及相关属性,帮助您更好地掌握这一技巧。 CSS3圆角概念 CSS3圆角指的是通过CSS3属性为元素(如div…

牛顿-拉夫森法求解非线性方程组

牛顿-拉夫森法(Newton-Raphson method)是一种用于求解非线性方程组的迭代方法。该方法通过线性化非线性方程组,并逐步逼近方程组的解。以下是牛顿-拉夫森法求解非线性方程组的详细步骤和MATLAB实现。 1. 牛顿-拉夫森法的基本原理 对于非线性方…

Windows系统使用命令生成文件夹下项目目录树(文件结构树)的两种高效方法

Windows系统使用命令生成文件夹下项目目录树(文件结构树)的两种高效方法前言:**方法一:tree 命令 —— 快速生成经典目录树****方法二:PowerShell —— 可以精准过滤“降噪”的命令**这份列表非常精炼,只包…

react中暴露事件useImperativeHandle

注:本页面模块主要是使用 useImperativeHandle ,一、概述1、要点hooks 中的暴露事情件方法useImperativeHandle,需要和forwardRef、ref 结合一起使用。1、外层校验的时候会校验里面所有需要校验的验证2、基础使用二、demo案例1、场景1、弹框打…

【论文阅读】-《RayS: A Ray Searching Method for Hard-label Adversarial Attack》

RayS:一种用于硬标签对抗攻击的光线搜索方法 Jinghui Chen University of California, Los Angeles jhchencs.ucla.edu Quanquan Gu University of California, Los Angeles qgucs.ucla.edu 原文链接:https://arxiv.org/pdf/2006.12792 摘要 深度神经…

15K的Go开发岗,坐标北京

好久没有分享最新的面经了,今天分享一下北京某公司Go开发岗的面经,薪资是15K左右,看看难度如何: 为什么要用分布式事务 分布式事务的核心作用是解决跨服务、跨数据源操作的数据一致性问题。在单体应用中,数据库本地事务…

Linux 文件管理高级操作:复制、移动与查找的深度探索

目录一、文件复制:从基础到企业级同步的全维度解析1. cp命令:基础工具的进阶密码(1)文件属性保留:从基础到极致(2)特殊文件处理:稀疏文件与设备文件(3)安全操…

Redis内存使用耗尽情况分析

目录 1、内存上限介绍 1.1、产生原因 1.2、Redis的maxmemory限额 1.3、影响的命令与场景 2. 内存用完后的策略 2.1、淘汰策略分类 2.2、淘汰策略介绍 2.3、不同策略对比 3、常见业务示例 3.1、影响 3.2、监控与自动告警 前言 在日常项目中,不知道你思考过…

Ubuntu 系统中配置 SSH 服务教程

一、什么是 SSH?SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络中安全地进行远程登录、远程命令执行和文件传输。它是 Telnet、FTP 等传统协议的安全替代品。二、确认系统环境在开始配置之前,请确认你的系…

基于springboot的编程训练系统设计与实现(源码+论文)

一、开发环境 技术/工具描述MYSQL数据库一个真正的多用户、多线程SQL数据库服务器,适用于Web站点或其他应用软件的数据库后端开发。B/S结构基于互联网系统的软件系统开发架构,利用浏览器进行访问,支持多平台使用。Spring Boot框架简化新Spri…

K8s集群两者不同的对外暴露服务的方式

在工作中,我们暴露集群内的服务通常有几种方式,对于普通的http或者https,我们通常使用​Ingress Nginx​ ,对于原始的TCP或者UDP端口服务,可能需要选择 ​LoadBalancer​ ,它们的核心区别在于工作层级、协议支持和流量…

实习日志111

第一天 加入内网和内网域,设置自己的操作系统 第二天 安装常用软件和平台 Notepad 是一款免费的源代码编辑器,支持多种编程语言,其功能强大且界面友好,适用于 Windows 操作系统。WinMerge 是一款开源的差异比较和合并工具&…

Redis 服务挂掉排查与解决

Redis 是一个高性能的键值对存储系统,广泛应用于缓存、会话存储、消息队列等场景。在使用 Redis 的过程中,偶尔会遇到 Redis 服务挂掉或无法连接的情况。本文将通过常见错误 RedisException in Redis.php line 63 Connection refused 来讲解如何排查并解…

DOM + HTML + HTTP

一、HTML5的新特性 1.语义化标签:其实就是可以让标签有自己的含义 html4之前都是有的,比如:<h1>、<ul>、<li> html5新增了很多语义化标签:<header>、<nav> html5的语义化标签的常用页面布局: 优点: 1.代码结构清晰,方便阅读,有利于团…

HTML 音频/视频

HTML 音频/视频 引言 HTML 音频和视频标签是网页设计中不可或缺的部分,它们为用户提供了一种将多媒体内容嵌入到网页中的方式。本文将详细介绍 HTML 音频/视频标签的用法、属性和注意事项,帮助开发者更好地在网页中嵌入音频和视频。 HTML 音频标签( ) 1. 标签基本用法 …

Apache Ignite Cluster Groups的介绍

以下这段内容是 Apache Ignite 官方文档中关于 Cluster Groups&#xff08;集群组&#xff09; 的介绍。我来用通俗易懂的方式帮你全面理解这个概念。&#x1f310; 什么是 Cluster Group&#xff1f; 简单来说&#xff1a;Cluster Group 就是一个“节点的子集”。想象一下你的…