-
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; -
DefaultExt
和AddExtension
一起配合使用,当保存文件时没有输入文件后缀时,自动添加的后缀;
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文本内容