天天看點

Visual C#儲存檔案對話框(SaveFileDialog)

儲存檔案對話框控件有兩種情況,一就是儲存,二就是另存為,儲存很簡單,就是在檔案已經打開的情況下的,再把檔案寫一篇,在這裡我們主要講另存為的情況(SaveAs)。

   1,SaveFileDialog控件的屬性Filter 要在對話框中顯示的檔案篩選器,例如,/"文本檔案(*.txt)|*.txt|所有檔案(*.*)|*.*/" FilterIndex 在對話框中選擇的檔案篩選器的索引,如果選第一項就設為1 RestoreDirectory 控制對話框在關閉之前是否恢複目前目錄 AddExtension 是否自動添加預設擴充名 CheckFileExists CheckPathExists

在對話框傳回之前,檢查指定路徑是否存在 Container 控制在将要建立檔案時,是否提示使用者。隻有在ValidateNames為真值時,才适用。 DefaultExt 預設擴充名 DereferenceLinks

在從對話框傳回前是否取消引用快捷方式 FileName 第一個在對話框中顯示的檔案或最後一個選取的檔案 InitialDirector 對話框的初始目錄 OverwritePrompt 控制在将要在改寫現在檔案時是否提示使用者,隻有在ValidateNames為真值時,才适用 ShowHelp 啟用/"幫助/"按鈕 Title 将顯示在對話框标題欄中的字元 ValidateNames 控制對話框檢查檔案名中是否不含有無效的字元或序列

  2、SaveFileDialog事件如下:

FileOk 當使用者點選/"打開/"或/"儲存/"按鈕時要處理的事件 HelpRequest 當使用者點選/"幫助/"按鈕時要處理的事件  

  4、用下例代碼可以實作

private void saveAsDialogBTN_Click(object sender, System.EventArgs e)

{

SaveFileDialog saveFileDialog=new SaveFileDialog();

saveFileDialog.Filter=/"文本檔案|*.*|C#檔案|*.cs|所有檔案|*.*/";

saveFileDialog.FilterIndex=2;

saveFileDialog.RestoreDirectory=true;

if(saveFileDialog.ShowDialog()==DialogResult.OK)

{

if(saveFileDialog.ShowDialog()==DialogResult.OK)

{

fName=saveFileDialog.FileName;

File fSaveAs=new File(fName);

isFileHaveName=true; file://儲存的檔案有名字

fSaveAs.WriteFile(richTextBox1.Text);

}

}

}

  其實這些都可以在VS.NET的IDE環境中直接完成,為了說明問題,我還是一條條列也來了。當中用到了一個File的類庫,下面是源程式:

   File.cs

using System;

using System.IO;

using System.Windows.Forms;

using System.Text;

namespace dialog

{

///

/// Summary description for File.

///

public class File

{

string fileName;

public File(string fileName)

{

this.fileName=fileName;

}

public string ReadFile()

{

try

{

StreamReader sr=new StreamReader(fileName,Encoding.Default);

string result=sr.ReadToEnd();

sr.Close();

return result;

}

catch(Exception e){MessageBox.Show(e.Message);}

return null;

}

public void WriteFile(string str)

{

try

{

StreamWriter sw=new StreamWriter(fileName,false,Encoding.Default);

sw.Write(str);

sw.Close();

}

catch(Exception e){MessageBox.Show(e.Message,/"儲存檔案出錯!/");}

}

}

}

繼續閱讀