對話框全接觸

  VS.net bate 2出來也很久了,感覺還可以。早一陣子,朋友讓我幫他寫兩個打印程序,當中用了不少的對話,在查資料的時候看到國外有一篇專門的文章介紹對話框的,就決定寫這篇文章,讓大家都有個好的起點。同時還着重介紹了打印那一部份,大家可以仔細研究一下,都說了很多了。現在我們開發吧!

  對話框中我們常用了以下幾種:

  1、文件對話框(FileDialog) 它又常用到兩個:

   打開文件對話框(OpenFileDialog)

   保存文件對話(SaveFileDialog)

  2、字體對話框(FontDialog)

  3、顏色對話框(ColorDialog)

  4、打印預瀏對話框(PrintPreviewDialog)

  5、頁面設置(PrintDialog)

  6、打印對話框(PrintDialog)

  還有更多,有時間的網友可以看看MSDN。下面我們一個個來介紹。在介紹的過程中我用到了一個自己開發的類:File,主要是文件操作的。


  文件對話框(FileDialog)

  一、打開文件對話框(OpenFileDialog)

  1、 OpenFileDialog控件有以下基本屬性

InitialDirectory 對話框的初始目錄
Filter 要在對話框中顯示的文件篩選器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*"
FilterIndex 在對話框中選擇的文件篩選器的索引,如果選第一項就設爲1
RestoreDirectory 控制對話框在關閉之前是否恢復當前目錄
FileName 第一個在對話框中顯示的文件或最後一個選取的文件
Title 將顯示在對話框標題欄中的字符
AddExtension 是否自動添加默認擴展名
CheckPathExists
在對話框返回之前,檢查指定路徑是否存在
DefaultExt 默認擴展名
DereferenceLinks 在從對話框返回前是否取消引用快捷方式
ShowHelp
啓用"幫助"按鈕
ValiDateNames 控制對話框檢查文件名中是否不含有無效的字符或序列

  2、 OpenFileDialog控件有以下常用事件

FileOk 當用戶點擊"打開"或"保存"按鈕時要處理的事件
HelpRequest 當用戶點擊"幫助"按鈕時要處理的事件

  3、OpenFileDialog的效果如下:

  可以用以下代碼來實現上面這個對話框:

private void openFileDialogBTN_Click(object sender, System.EventArgs e){
OpenFileDialog openFileDialog=new OpenFileDialog();
openFileDialog.InitialDirectory="c:\\";//注意這裏寫路徑時要用c:\\而不是c:\
openFileDialog.Filter="文本文件|*.*|C#文件|*.cs|所有文件|*.*";
openFileDialog.RestoreDirectory=true;
openFileDialog.FilterIndex=1;
if (openFileDialog.ShowDialog()==DialogResult.OK)
{
fName=openFileDialog.FileName;
File fileOpen=new File(fName);
isFileHaveName=true;
richTextBox1.Text=fileOpen.ReadFile();
richTextBox1.AppendText("");
}
}

  其中有用到了File()這個類,是我在程序用來執行文件操作,自己寫的,在最後附了這個類的源碼。有興趣的網友可以自己分析。

  二、保存文件對話框(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 當用戶點擊"幫助"按鈕時要處理的事件

  3、SaveFileDialog的效果如下:

  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,"保存文件出錯!");}
}
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章