close

檔案對話方塊分成兩種:讀檔對話方塊(OpenFileDialog)而存檔對話方塊(SaveFileDialog)。兩者除了外貌不同之外,其成員函式、成員是一樣的。兩者均是設定介面,其用處是可讓使用者藉由此介面指定一個檔案或檔案路徑。

讀檔對話方塊預設的「外觀」如下:

image

存檔對話方塊預設的「外觀」如下:

image

. 檔案對話方塊常用的成員函式:

(以下的檔案對話方塊名稱,對於讀檔對話方塊而言通常為openFileDialog1openFileDialog2openFileDialog3等等;而對於存檔對話方塊而言通常為saveFileDialog1saveFileDialog2saveFileDialog3等等;

檔案對話方塊名稱.ShowDialog():顯示出該檔案對話方塊,好讓使用者指定檔案路徑。

檔案對話方塊名稱.Reset():將該檔案對話方塊的所有成員之值,調回成預設值。

 

2. 檔案對話方塊常用的成員:

檔案對話方塊名稱.FileName:一個string,即是使用者藉由該檔案對話方塊所選取的檔名(或路徑名)。使用者在上述的ShowDialog()成員函式執行之後,於讀檔對話方塊中選取檔案,按下image 之後(或於存檔對話方塊中選取檔案,按下 image 之後), image

中的路徑就會被存入此成員中。

檔案對話方塊名稱.CheckPathExists一個bool。若為true,表示當選取的路徑不存在時,若使用者按下image (或 image

後,會出現警告訊息。若為false,則不會出現警告訊息。預設值為true

檔案對話方塊名稱.MultiSelect一個bool。若為true,表示一次可以選取多個檔案。若為false,表是一次只能選取一個檔案。

檔案對話方塊名稱.InitialDirectory:一個string,表示一個路徑。是在執行ShowDialog()成員函式而打開檔案對話方塊之後,整個檔案對話方塊所在的路徑。要注意,若路徑之中有反斜線\,記得要用另一個反斜線\將之脫逸。如,假設今路徑為:D:\Ctest\files,那麼InitialDirectory的值就要是"D:\\Ctest\\files "

檔案對話方塊名稱.Filter:一個string,對讀檔對話方塊而言代表這個「檔案類型下拉式選單」image 中的選項(對存檔對話方塊而言則代表這個「存檔類型下拉式選單」 image

中的選項),用來讓使用者能夠在資料夾中過濾檔案。其寫法為:"提示文字一|檔案一|提示文字二|檔案二|…提示文字N|檔案N "。每一個提示文字對應到一個檔案提示文字是顯示在下拉式選單中選項的文字,無實質作用;檔案則有實質作用,即當該下拉式選單的提示文字被選取時,只有該檔案會顯示在資料夾上。檔案的寫法可以是純粹的檔案名,如aaa.bmp,也可以使用萬用字元*,如*.bmp就代表「所有副檔名為bmp的檔案」。

範例如:

private void button1_Click(object sender, EventArgs e)

    openFileDialog1.Filter = "二進位圖檔(*.bmp)|*.bmp|jpg圖檔(*.jpg)|*.jpg";

    openFileDialog1.ShowDialog();

}

則在執行後、按下button1,顯示出的檔案對話方塊的檔案類型下拉式選單」就會是這個樣子:

image

() 註:檔案的類型事實上是由檔案的編碼來決定,而不是副檔名。也就是說,就算把一個bmp檔的副檔名改成jpg,它本質上還是一個bmp檔,只是副檔名錯了。要真正把檔案的本質從bmp改成jpg,應該要用轉檔器將檔案編碼重新編過才對。

 

3. 使用範例:

(1) 以讀檔對話方塊為例:

private void button1_Click(object sender, EventArgs e)

{

    openFileDialog1.ShowDialog();

    string filename = openFileDialog1.FileName;

    pictureBox1.Image = Image.FromFile(filename);  //表示從讀檔對話方塊中指定路徑,並將路徑中檔案讀取至pictureBox1控制項的影像檔

}

(2) 以存檔對話方塊為例:

private void button1_Click(object sender, EventArgs e)

{

    saveFileDialog1.ShowDialog();

    string filename = saveFileDialog1.FileName;

pictureBox1.Image.Save(filename,System.Drawing.Imaging.ImageFormat.Bmp);    //表示從存檔對話方塊中指定路徑,並將pictureBox1控制項的影像檔存入該路徑

}

 

 

 

上一篇:C# 顏色對話方塊(ColorDialog)

下一篇:C# 鍵盤滑鼠事件

按此前往C#完整教學目錄

arrow
arrow
    創作者介紹
    創作者 埃伯 的頭像
    埃伯

    程式語言教學

    埃伯 發表在 痞客邦 留言(0) 人氣()