【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
英文地址,請注明出處:http://en.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 就是一個“節點的子集”。想象一下你的…