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:




コメント