儲存檔案對話框控件有兩種情況,一就是儲存,二就是另存為,儲存很簡單,就是在檔案已經打開的情況下的,再把檔案寫一篇,在這裡我們主要講另存為的情況(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,/"儲存檔案出錯!/");}
}
}
}