SaveFileDialogボックスでは、[ファイルの種類] ボックスに表示される選択肢を設定することができます。
選択肢を設定する場合はFilterプロパティに次のような書式を設定します。
“表示する文字列|フィルターする拡張子”
たとえば、Filterプロパティに “png画像|*.png” という文字列を設定すると、[ファイルの種類]ボックスは下図のようになり拡張子が*.pngのファイルのみを選択できるようになります。
また、複数の選択肢を設定することもできます。
たとえば”png画像|*.png|gif画像|*.gif”というフィルターを設定すると、png画像の選択肢とgif画像の選択肢が追加されます。
さらに、1つの選択肢で複数の拡張子をフィルターすることもできます。
この場合は、フィルターする拡張子をセミコロン(;)で区切って指定します。
たとえば”jpg画像|*.jpeg;*.jpg”と設定すると[ファイルの種類]ボックスは下図のようになり、*.jpegと*.jpgのファイルを選択できるようになります。
下記は、以上を踏まえて[ファイルの種類] ボックスに表示される選択肢を設定する例です。
画面デザインは下記のようにしました(クリックで拡大表示します)。
VBの例
'SavefFileDialogに設定するフィルター文字列格納用変数 Private strFilter As String = "" ' [追加]ボタンクリック時の処理 Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click 'strFilterにフィルター文字列がすでにあるか? If strFilter.Length > 0 Then '文字列の末尾に"|"を追加 strFilter &= "|" End If '「表示する文字列|フィルターする拡張子」の文字列をstrFilterに格納 strFilter &= txtString.Text & "|" & txtFilter.Text End Sub ' [ダイアログの表示]ボタンクリック時の処理 Private Sub btnShowSaveDialog_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShowSaveDialog.Click '★★★OpenFileDialogのフィルターを設定★★★ SaveFileDialog1.Filter = strFilter 'ダイアログの表示 SaveFileDialog1.ShowDialog() End Sub ' [保存]ボタンクリック時の処理 Private Sub SaveFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk '選択されたファイルをテキストボックスに表示する txtInputFile.Text = SaveFileDialog1.FileName End Sub
C#の例
// SavefFileDialogに設定するフィルター文字列格納用変数 private string strFilter = ""; // [追加]ボタンクリック時の処理 private void btnAdd_Click(object sender, EventArgs e) { // strFilterにフィルター文字列がすでにあるか? if (strFilter.Length > 0) { //文字列の末尾に"|"を追加 strFilter += "|"; } //「表示する文字列|フィルターする拡張子」の文字列をstrFilterに格納 strFilter += txtString.Text + "|" + txtFilter.Text; } // [ダイアログの表示]ボタンクリック時の処理 private void btnShowSaveDialog_Click(object sender, EventArgs e) { // ★★★OpenFileDialogのフィルターを設定★★★ saveFileDialog1.Filter = strFilter; // ダイアログボックスの表示 saveFileDialog1.ShowDialog(); } // [保存]ボタンクリック時の処理 private void saveFileDialog1_FileOk(object sender, CancelEventArgs e) { // 選択されたファイルをテキストボックスに表示する txtInputFile.Text = saveFileDialog1.FileName; }
実行例は下記の通りです。
Please follow and like us:
コメント