OpenFileDialogボックスでは、[ファイルの種類] ボックスに表示される選択肢を設定することができます。
選択肢を設定する場合はFilterプロパティに次のような書式を設定します。
“表示する文字列|フィルターする拡張子”
たとえば、Filterプロパティに “png画像|*.png” という文字列を設定すると、[ファイルの種類]ボックスは下図のようになり拡張子が*.pngのファイルのみを選択できるようになります。
また、複数の選択肢を設定することもできます。
たとえば”png画像|*.png|gif画像|*.gif”というフィルターを設定すると、png画像の選択肢とgif画像の選択肢が追加されます。
さらに、1つの選択肢で複数の拡張子をフィルターすることもできます。
この場合は、フィルターする拡張子をセミコロン(;)で区切って指定します。
たとえば”jpg画像|*.jpg;*.jpeg”と設定すると[ファイルの種類]ボックスは下図のようになり、*.jpgと*.jpegのファイルを選択できるようになります。
下記は、以上を踏まえて[ファイルの種類] ボックスに表示される選択肢を設定する例です。
画面デザインは下記のようにしました(クリックで拡大表示します)。
VBの例
'OpefFileDialogに設定するフィルター文字列格納用変数
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 btnShowDialog_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShowDialog.Click
'★★★OpenFileDialogのフィルターを設定★★★
OpenFileDialog1.Filter = strFilter
'ダイアログボックスの表示
If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
'選択されたファイルをテキストボックスに表示する
txtSelectedFile.Text = OpenFileDialog1.FileName
End If
End Sub
C#の例
// OpefFileDialogに設定するフィルター文字列格納用変数
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 btnShowDialog_Click(object sender, EventArgs e)
{
// ★★★OpenFileDialogのフィルターを設定★★★
openFileDialog1.Filter = strFilter;
// ダイアログボックスの表示
if ( openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK )
{
// 選択されたファイルをテキストボックスに表示する
txtSelectedFile.Text = openFileDialog1.FileName;
}
}
実行例は下記の通りです。
Please follow and like us:




コメント