-
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文本內容